为了账号安全,请及时绑定邮箱和手机立即绑定

如何在JavaScript中触发事件?

如何在JavaScript中触发事件?

如何在JavaScript中触发事件?我已将事件附加到文本框中addEventListener。它工作正常。当我想以编程方式从另一个函数触发事件时,我的问题出现了。我该怎么做?
查看完整描述

4 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

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

下面是代码(从原型)一个不言自明一块触发一个事件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);}


查看完整回答
反对 回复 2019-05-28
?
MMTTMM

TA贡献1869条经验 获得超4个赞

如果你使用jQuery,你可以简单地做

$('#yourElement').trigger('customEventName', [arg0, arg1, ..., argN]);

并处理它

$('#yourElement').on('customEventName',
   function (objectEvent, [arg0, arg1, ..., argN]){
       alert ("customEventName");});

其中“[arg0,arg1,...,argN]”表示这些参数是可选的。


查看完整回答
反对 回复 2019-05-28
?
千巷猫影

TA贡献1829条经验 获得超7个赞

如果您不想使用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 });


查看完整回答
反对 回复 2019-05-28
  • 4 回答
  • 0 关注
  • 914 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信