如何在JavaScript中触发事件?

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

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

我该怎么做?

Lonely永夜Lonely永夜提问于
秋之夕颜清念念不忘,必有回响回答于

一个工作的例子:

// Add an event listene
document.addEventListener("name-of-event", function(e) {
  console.log(e.detail); // Prints "Example of an event"
});
// Create the event
var event = new CustomEvent("name-of-event", { "detail": "Example of an event" });
// Dispatch/Trigger/Fire the event
document.dispatchEvent(event);

对于较老的浏览器polyfill和更复杂的示例,请参阅MDN文档。

见支持表的EventTarget.dispatchEvent和CustomEvent。

嗨喽你好摩羯座回答于

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

下面是代码(从原型)一个不言自明一块触发一个事件dataavailable上的element:

  var event; // The custom event that will be created
  if (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);
  }

扫码关注云+社区

领取腾讯云代金券