触发内容事件
我编写了一个Chrome扩展程序,自动填写一些注册表单。 有些选择字段需要在“ 更改 ”事件上触发才能启动一些Ajax调用。
首先,我使用JQuery attr或val来更改select字段的值,并且使用.trigger来调用“change”事件,但最后一个不起作用。
例:
我想选择包含单词“London”的选项并调用change元素,以启动一些在“change”事件上有一些监听器的本地代码的操作
jQuery("#SelectElement option:contains('London')").attr("selected", "selected");
jQuery("#SelectElement").trigger("change"); <--- not works
我也试过:
jQuery("#SelectElement option:containt('London')").attr("selected", "selected").change();
但是如果我在控制台上试用这个代码,它就可以工作。
建议?
就我而言,
var event = new CustomEvent('change');
不工作。
我必须像这样初始化事件:
var evt = document.createEvent("HTMLEvents");
evt.initEvent("keyup", true, true);
第一个arg'气泡'应该是真实的,所以事件应该通过事件链起泡。
event.initEvent(type, bubbles, cancelable);
来源:https://developer.mozilla.org/en-US/docs/Web/API/Event/initEvent
我有同样的问题,据我所知,这是因为框架事件监听器。 你不能通过jquery从你的代码中触发! 但解决方案以这种方式触发事件:
$(selector)[0].dispatchEvent(new Event("eventName"))