私はこのようにしています:
$.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
});