使用本机JavaScript来激活jQuery live事件

时间:2012-05-08 03:18:41

标签: javascript jquery events google-chrome-extension

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

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

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

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

当然上面的内容不起作用,因为正在使用live函数。我怎么能触发呢?

谢谢!

2 个答案:

答案 0 :(得分:4)

如果您没有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

答案 1 :(得分:0)

您是否尝试过trigger()

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

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