Javascript 创建自定义滚动事件,与用户事件区分?
在JavaScript中,如何调度将由Javascript 创建自定义滚动事件,与用户事件区分?,javascript,Javascript,在JavaScript中,如何调度将由onscroll拾取的合成事件,其中该事件包含一些标志,告诉我它是合成事件,并且不是来自用户 谢谢您可以使用事件构造函数创建自定义事件,如下所示: var event = new Event('build'); // Listen for the event. elem.addEventListener('build', function (e) { ... }, false); // Dispatch the event. elem.dispatchE
onscroll
拾取的合成事件,其中该事件包含一些标志,告诉我它是合成事件,并且不是来自用户
谢谢您可以使用
事件
构造函数创建自定义事件,如下所示:
var event = new Event('build');
// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);
// Dispatch the event.
elem.dispatchEvent(event);
var event = new CustomEvent('build', { 'detail': elem.dataset.time });
要向事件对象添加更多数据,存在CustomEvent
接口,可以使用detail属性传递自定义数据。
例如,可以按如下方式创建事件:
var event = new Event('build');
// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);
// Dispatch the event.
elem.dispatchEvent(event);
var event = new CustomEvent('build', { 'detail': elem.dataset.time });
这将允许您访问事件侦听器中的其他数据:
function eventHandler(e) {
console.log('The time is: ' + e.detail);
}
您可以使用
CustomEvent()
构造函数,.dispatchEvent()
,检查事件中的属性是否为;如果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);
这不应该是event[“detail”]&&event[“detail”]
@KScandrett是的,请参阅更新的帖子。或者,if(事件中的“细节”){}