我这样做:
$.each($('img'), function () {
this.unbind('onmouseover');
});
这不起作用。为什么?
我这样做:
$.each($('img'), function () {
this.unbind('onmouseover');
});
这不起作用。为什么?
尝试如下,
$('img').unbind('mouseover');
不需要循环..也不mouseover
应该onmouseover
假设:您正在使用.bind
绑定mouseover
处理程序
我没有使用绑定。有些图像有 onmouseover 属性,我想删除它们。我尝试了 $('img').removeAttr('onmouseover') 但它仍然不起作用
代码:
$('img').on('mouseover', function () {
//Your code
});
稍后可以使用.off
->取消绑定它们
$('img').off('mouseover');
解决您所拥有的(不是首选),(参考)
$.each($('img'), function () {
$(this).removeAttr('onmouseover');
});
此外,您可以“菊花链”删除 jQuery 中的处理程序方法,因为每个函数都返回相同的集合。每个附加方法都有自己的删除方法对,因此请相应地使用。
最后,要移除 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
});