我这样做:
$.each($('img'), function () {
this.unbind('onmouseover');
});
这不起作用。为什么呢?
答案 0 :(得分:8)
尝试如下,
$('img').unbind('mouseover');
不需要循环..而且它应该是mouseover
而不是onmouseover
假设:您正在使用.bind
绑定mouseover
处理程序
我没有使用bind。一些图像有onmouseover属性,我想删除它们。我尝试$('img')。removeAttr('onmouseover')但它仍然不起作用
<强>代码:强>
$('img').on('mouseover', function () {
//Your code
});
以后可以使用.off
- &gt;取消绑定它们
$('img').off('mouseover');
解决你的问题(不是首选),(Reference)
$.each($('img'), function () {
$(this).removeAttr('onmouseover');
});
答案 1 :(得分:5)
此外,您可以“菊花链”删除jQuery中的处理程序方法,因为每个函数都返回相同的集合。每个attach方法都有自己的remove方法对,因此请相应使用。
最后,要删除DOM元素(内联事件处理程序)上的处理程序,请将其替换为null或具有return false
;
这是概念代码:
$('img')
.unbind('mouseover') //remove events attached with bind
.off('mouseover') //remove events attached with on
.die('mouseover'); //remove events attached with live
.each(function(i,el){ //and for each element
el.onmouseover = null //replace the onmouseover event
});