Fire jQuery live event with native JavaScript



我在某个页面上有一个事件,我需要从Chrome扩展程序触发。我无权修改页面的JavaScript。

$(selector).live("click", fn);

我需要在我的 Chrome 扩展程序中使用本机 JS 触发此操作,如下所示:

selectorElement.click(); //doesn't work

当然,上述操作不起作用,因为正在使用live函数。我该如何触发它?

谢谢!

如果你没有jQuery,你可以使用dispatchEvent触发DOM事件:

var selector = "#...";
var elmList = document.querySelectorAll(selector);
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
elm[0].dispatchEvent(evt);

此代码在与选择器匹配的第一个元素上触发,但如果需要一次触发多个元素,则可以对其进行修改以循环遍历elmList

你试过trigger()吗?

$(selector).trigger('click');

当然,trigger()应该在jQuery对象上使用(因此$(selector).

最新更新