2017-03-02 96 views

回答

1
合成事件

您可以用Event构造函数创建自定义事件如下:

var event = new Event('build'); 

// Listen for the event. 
elem.addEventListener('build', function (e) { ... }, false); 

// Dispatch the event. 
elem.dispatchEvent(event); 

更多的数据添加到事件对象,该CustomEvent存在界面和细节属性可以用来传递自定义数据。

var event = new CustomEvent('build', { 'detail': elem.dataset.time }); 

这一操作将允许您访问的事件监听器附加数据:

function eventHandler(e) { 
    console.log('The time is: ' + e.detail); 
} 

details are here

1

您可以使用CustomEvent() 例如,事件可以通过以下方式创建构造函数,.dispatchEvent(),检查是否"detail"属性为inevent;如果true

element.addEventListener("scroll", function(event) {  
    if ("detail" in event && event.detail.id === 123) { 
    // do stuff with `event.detail.prop` 
    } 
}); 

var id = 123; 
var o = {detail:{id: id, prop:"abc"}}; 

var e = new CustomEvent("scroll", o); 
element.dispatchEvent(e); 
+2

难道不应该是'事件[ “细节”] &&事件[ “细节”]' –

+0

@KScandrett是的,看到更新的帖子。或者,'if(“event”in event){}' – guest271314