jQuery + Greasemonkey,Click事件不会触发正确的元素?

时间:2010-03-07 21:01:01

标签: jquery dom greasemonkey

$(Constants.Selectors.Submit_Button).bind('click', function () {
    GM_log('Event run: id = ' + this.id + ' self = ' + this);
});

当文档(或其他一些包含所有页面的元素或元素集)触发click事件时,上面的代码似乎运行。控制台输出如下: 脚本:事件运行:id = undefined self = [object XPCNativeWrapper [object HTMLDocument]]

选择器是一个简单的字符串“#buttonID”,其中buttonID被显着混淆(我确定没有名称冲突),并且是我注入页面的HTML表单的一部分。 (即属性“type”设置为“button”的输入元素。)

有谁知道为什么会这样?我对这一点毫无头绪。

2 个答案:

答案 0 :(得分:0)

您使用的是哪种版本的jQuery? 自从我在GM工作以来已经有一段时间了,但是我找到了我的代码并且它是用1.3.2完成的,只要点击功能处于文档就绪功能下,它仍然适用于我。

var $jq = jQuery.noConflict();

$jq(function(){
  $jq('#buttonID').click(function(){
   runCode;
  });
 });

答案 1 :(得分:0)

而不是做这样的事情:

var elmLink = document.getElementById('somelink');
elmLink.onclick = 'my_func(this)';

做这样的事情:

var elmLink = document.getElementById('somelink');
elmLink.addEventListener("click", my_func, true);

来自here