如何在JavaScript中触发事件?

如何在JavaScript中触发事件?

我已将事件附加到文本框中addEventListener。它工作正常。当我想以编程方式从另一个函数触发事件时,我的问题出现了。

我该怎么做?


慕姐4208626
浏览 875回答 4
4回答

杨__羊羊

你可以在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

如果你使用jQuery,你可以简单地做$('#yourElement').trigger('customEventName', [arg0, arg1, ..., argN]);并处理它$('#yourElement').on('customEventName',    function (objectEvent, [arg0, arg1, ..., argN]){        alert ("customEventName");});其中“[arg0,arg1,...,argN]”表示这些参数是可选的。

千巷猫影

如果您不想使用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 });
打开App,查看更多内容
随时随地看视频慕课网APP