如何在JavaScript中触发事件?我已将事件附加到文本框中addEventListener。它工作正常。当我想以编程方式从另一个函数触发事件时,我的问题出现了。我该怎么做?
4 回答
杨__羊羊
TA贡献1943条经验 获得超7个赞
你可以在IE 8或更低版本上使用fireEvent,在大多数其他浏览器上使用w3c的dispatchEvent。要创建要触发的事件,您可以使用createEvent
或createEventObject
依赖浏览器。
下面是代码(从原型)一个不言自明一块触发一个事件dataavailable
上的element
:
var event; // The custom event that will be createdif (document.createEvent) { event = document.createEvent("HTMLEvents"); event.initEvent("dataavailable", true, true);} else { event = document.createEventObject(); event.eventType = "dataavailable";}event.eventName = "dataavailable";if (document.createEvent) { element.dispatchEvent(event);} else { element.fireEvent("on" + event.eventType, event);}
MMTTMM
TA贡献1869条经验 获得超4个赞
如果你使用jQuery,你可以简单地做
$('#yourElement').trigger('customEventName', [arg0, arg1, ..., argN]);
并处理它
$('#yourElement').on('customEventName', function (objectEvent, [arg0, arg1, ..., argN]){ alert ("customEventName");});
其中“[arg0,arg1,...,argN]”表示这些参数是可选的。
千巷猫影
TA贡献1829条经验 获得超7个赞
如果您不想使用jQuery并且不特别关注向后兼容性,那么只需使用:
let element = document.getElementById(id);element.dispatchEvent(new Event("change")); // or whatever the event type might be
编辑:根据您的设置,您可能需要添加bubbles: true
:
let element = document.getElementById(id);element.dispatchEvent(new Event('change', { 'bubbles': true });
添加回答
举报
0/150
提交
取消