如何在 JavaScript 中触发事件? [英] How to trigger event in JavaScript?
问题描述
我已使用 addEventListener
将事件附加到文本框.它工作正常.当我想从另一个函数以编程方式触发事件时,我的问题就出现了.
I have attached an event to a text box using addEventListener
. It works fine. My problem arose when I wanted to trigger the event programmatically from another function.
我该怎么做?
推荐答案
注意:initEvent 方法现已弃用.其他答案包含最新的和推荐的做法.
Note: the initEvent method is now deprecated. Other answers feature up-to-date and recommended practice.
您可以使用 fireEventIE 8 或更低版本,以及 W3C 的 dispatchEvent大多数 其他浏览器.要创建要触发的事件,您可以根据浏览器使用 createEvent
或 createEventObject
.
You can use fireEvent on IE 8 or lower, and W3C's dispatchEvent on most other browsers. To create the event you want to fire, you can use either createEvent
or createEventObject
depending on the browser.
这是一段不言自明的代码(来自原型),它在 element
上触发事件 dataavailable
:
Here is a self-explanatory piece of code (from prototype) that fires an event dataavailable
on an element
:
var event; // The custom event that will be created
if(document.createEvent){
event = document.createEvent("HTMLEvents");
event.initEvent("dataavailable", true, true);
event.eventName = "dataavailable";
element.dispatchEvent(event);
} else {
event = document.createEventObject();
event.eventName = "dataavailable";
event.eventType = "dataavailable";
element.fireEvent("on" + event.eventType, event);
}
这篇关于如何在 JavaScript 中触发事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!