.undelegate()
マッチした要素のrootを元に登録されたイベントハンドラを削除します。
- .undelegate() 1.4.2追加
- .undelegate( selector, eventType ) 1.4.2追加
- .undelegate( selector, eventType, handler(eventObject) ) 1.4.2追加
- .undelegate( selector, events ) 1.4.3追加
- .undelegate( namespace ) 1.6追加
- デモ
.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>
© 2010 - 2017 STUDIO KINGDOM