在JavaScript中,如何发送由onscroll
拾取的合成事件,其中该事件包含一些标记,告诉我它是合成事件,并且不起源于用户
由于
答案 0 :(得分:1)
您可以使用Event
构造函数创建自定义事件,如下所示:
var event = new Event('build');
// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);
// Dispatch the event.
elem.dispatchEvent(event);
要向事件对象添加更多数据,CustomEvent
接口存在,并且detail属性可用于传递自定义数据。
例如,可以按如下方式创建事件:
var event = new CustomEvent('build', { 'detail': elem.dataset.time });
这将允许您访问事件监听器中的其他数据:
function eventHandler(e) {
console.log('The time is: ' + e.detail);
}
答案 1 :(得分:1)
您可以使用CustomEvent()
构造函数.dispatchEvent()
,检查"detail"
属性是in
event
;如果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);