看起来对于.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();
应该在实际处理程序绑定之上。