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

我该怎么做?

最佳答案

您可以在 IE 8 或更低版本上使用fireEvent,在大多数其他浏览器上使用W3C的dispatchEvent。要创建您要触发的事件,可以根据浏览器使用createEventcreateEventObject

这是一段不言自明的代码(来自原型(prototype)),它在dataavailable上触发了一个事件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);
}

07-26 00:07