如何在 JavaScript 中触发事件? [英] How to trigger event in JavaScript?

查看:40
本文介绍了如何在 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大多数 其他浏览器.要创建要触发的事件,您可以根据浏览器使用 createEventcreateEventObject.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆