.off
委任されたイベントでは、 と同じセレクターを使用する必要があるようです.on
。以下はjQueryドキュメントからのものです...
特定の委任されたイベント ハンドラーを削除するには、セレクター引数を指定します。セレクター文字列は、イベント ハンドラーがアタッチされたときに .on() に渡されたものと正確に一致する必要があります。委任されていないイベントを削除せずに、すべての委任されたイベントを要素から削除するには、特別な値「**」を使用します。
http://api.jquery.com/off/
要素が 1 つだけの場合は、その条件を簡単に追加できます。下記参照、
デモ: http://jsfiddle.net/4rDgP/4/
function onClickHandler() {
alert($(this).text());
}
jQuery(document).on('click', 'a[id^="MenuFilterVar_"]', function() {
if (this.title == 'Special Case Element') return;
onClickHandler.call(this);
});
または複数の要素の場合は、無視したい要素に別のハンドラーをバインドして、e.stopImmediatePropagation()
. 下記参照、
デモ: http://jsfiddle.net/4rDgP/3/
jQuery(document).on('click', 'a[title="Special Case Element"]', function (e) {
e.stopImmediatePropagation();
});
jQuery(document).on('click', 'a[id^="MenuFilterVar_"]', onClickHandler);
e.stopImmediatePropagation();
は、実際のハンドラー バインディングの上にある必要があることに注意してください。