$("p").click(function(){alert('clicked')});
$("p").unbind('click');
在greasemonkey中,点击事件不会解除绑定(bind)。我相信这是由 Greasemonkey 的安全模型从 XPCNativeWrapper 中的第一行包装关联的事件对象引起的,导致第二行无法“找到”它。但是,我似乎找不到解决方法。有什么建议吗?
更新:类似下面的东西在greasemonkey中确实有效。所以我仍然认为这是 XPCNativeWrapper 问题,我找不到解决方法。
$("p").click(function(){alert('clicked'); $(this).unbind('click')});
最佳答案
我认为 jQuery 单击事件是在调用 unbind() 函数后添加的。这就是以下代码有效的原因。
$("p").click(function(){alert('clicked'); $(this).unbind('click')});
您的函数会经过一段时间,直到您单击警报按钮,并且 unbind() 函数在您单击“确定”后才起作用。
这是我测试过的解决方案:
function removeClick() {
$("p").unbind('click');
}
var initTimeout = setTimeout(function() { removeClick(); }, 1000);
<小时/>
如果您不喜欢在 Greasemonkey 脚本中使用超时或间隔,您可以向 p 元素添加 mouseover 事件以删除点击。
$("p").mouseover(function(){
$(this).unbind('click');
});
关于jquery - 如何在greasemonkey 中取消绑定(bind)jquery 事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436874/