jquery undelegateメソッド

TOPページに戻る > jquery入門

スポンサード リンク

jquery undelegate()メソッド

undelegateメソッドは、delegate()で登録したイベントからハンドラを削除します
取得するセレクタを指定されたセレクタに限定できるため処理が速いです
第一引数にセレクタを記述し""で囲みます
第二引数にイベントを記述し""で囲みます
第三引数にハンドラを記述します
引数になにも指定しないとセレクタで指定した要素から全てのdelegate()で登録した処理を削除します
イベント名はclick、dblclick、mousedown、mouseup、mouseover、mouseout、mousemove、mouseenter、mouseleave、blur、focus、load、resize、scroll、unload、change、select、submit、keydown、keypress、keyup、errorで指定します
on()メソッドがvar1.7からできたので、on()を使ったほうがいいです記述方法も統一され、すっきりします

セレクタで指定した要素内の全てのdelegate()で登録したイベントからハンドラを削除します

$("セレクタ").undelegate()

ハンドラを削除する要素の場所をセレクタで限定する

$("セレクタ").undelegate("セレクタ","イベント名")

イベントハンドラも指定して削除する範囲をさらに限定する

$("セレクタ").undelegate("セレクタ","イベント名",イベントハンドラ);

delegate()で登録したイベントからハンドラを削除します

hogeclickとゆうイベントハンドラをdelegate()で登録しています
削除ボタンを押したときにdelegate()で登録したイベントハンドラをundelegate()を使って削除します

jquery

function hogeclick() {
	$(this).after("<br><button>出現した要素からもイベント実行できます</button>");
	}
	$("#box").delegate("button","click",hogeclick);
 
	$("#hoge2").click(function(){
	$("#box").undelegate("button","click",hogeclick)
	$("button").text("イベントを削除しました");
    });
});

html

<div id="box">
<button id="hoge">要素を追加</button>
<br>
<button id="hoge2">削除</button>
</div>

実行後










(C)2012 ホームページ作成無料