.undelegate()

マッチした要素のrootを元に登録されたイベントハンドラを削除します。

.delegate()によってバインドされたイベントハンドラを削除します。 jQuery1.7以上では、.on()と.off()を使用することが推奨されています。

.undelegate() 1.4.2追加

戻り値:jQuery

マッチした要素のrootを元に登録されたイベントハンドラを削除します。

$("p").undelegate();

.undelegate( selector, eventType ) 1.4.2追加

戻り値:jQuery

マッチした要素のrootを元に登録されたイベントハンドラを削除します。

引数 説明
selector
eventType 'click'や'submit'等のjavaScriptイベントの文字列を指定します。

.undelegate( selector, eventType, handler(eventObject) ) 1.4.2追加

戻り値:jQuery

マッチした要素のrootを元に登録されたイベントハンドラを削除します。

引数 説明
selector
eventType 'click'や'submit'等のjavaScriptイベントの文字列を指定します。
handler(eventObject)
var foo = function () {
  // code to handle some kind of event
};

// ... now foo will be called when paragraphs are clicked ...
$("body").delegate("p", "click", foo);

// ... foo will no longer be called.
$("body").undelegate("p", "click", foo);

// delegate events under the ".whatever" namespace
$("form").delegate(":button", "click.whatever", foo);

$("form").delegate("input[type='text']", "keypress.whatever", foo);

.undelegate( selector, events ) 1.4.3追加

戻り値:jQuery

マッチした要素のrootを元に登録されたイベントハンドラを削除します。

引数 説明
selector
events javaScriptのイベントオブジェクトを指定します。

.undelegate( namespace ) 1.6追加

戻り値:jQuery

マッチした要素のrootを元に登録されたイベントハンドラを削除します。

引数 説明
namespace
$("form").undelegate(".whatever");

デモ

色のついたボタンをクリックして、イベントハンドラの登録と削除の処理を交互に実行します。

<!DOCTYPE html>
<html>
<head>
<style>
  button { margin:5px; }
  button#theone { color:red; background:yellow; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<button id="theone">何もしません...</button>
<button id="bind">clickを登録</button>
<button id="unbind">clickを削除</button>
<div style="display:none;">Click!</div>
<script>
function aClick() {
  $("div").show().fadeOut("slow");
}
$("#bind").click(function () {
  $("body").delegate("#theone", "click", aClick)
    .find("#theone").text("クリック!");
});
$("#unbind").click(function () {
  $("body").undelegate("#theone", "click", aClick)
    .find("#theone").text("何もしません...");
});
</script>
</body>
</html>

 Back to top

© 2010 - 2017 STUDIO KINGDOM