如何在JQuery中取消文档中的一些点击事件(不是全部)

时间:2013-11-25 00:59:02

标签: javascript jquery

单击文档,.area div消失。

$(document).on('click', function() {
    $('.area').hide();
});

$(document).off('click', '.red', function(e) {
    e.stopPropagation();
});

在这种情况下,如何将stopPropagation应用于.red。我想保留这种js格式,因为我需要添加更多的类名。

在线示例 http://jsfiddle.net/ku9cj/1/

由于

2 个答案:

答案 0 :(得分:5)

off()用于删除事件处理程序;你需要使用.on()

$(document).on('click', '.red', function(e) {
    e.stopPropagation();
});

演示:Fiddle

答案 1 :(得分:1)

您不应该在文档中附加处理程序,因为它们非常缓慢地冒泡。如果必须这样做,请尝试以下操作:

$('body').on('click', function() {
    $('.area').hide();
});

$('.red').on('click', function(e) {
    e.stopPropagation();
});

或者,如果您坚持使用委托并且没有更近的父元素:

$('body').on('click', '.red', function(e) {
    e.stopPropagation();
});