2016-10-24 79 views
1

所以我有這樣的代碼:如何通過點擊任何地點來取消jQuery效果?

$(document).click(function(e){ 
    $(".label").removeClass("active"); 
}); 

$(".input-combo").click(function(e){ 
    e.stopPropagation(); 

    var $this = $(this), 
     label = $this.find(".label"); 

    $(".label").removeClass("active"); 
    label.addClass("active"); 
}); 

而且除了它的工作原理確定的$(document)點擊一部分,但是與文檔部分的第一click事件抵消了$(".input-combo") click事件。我怎麼能阻止呢?

+0

在文檔單擊處理程序,檢查什麼的單擊事件的_target_是第一。 – CBroe

回答

0

使用.not()選擇器,您將排除所有不想刪除的功能。

1

下面的代碼應該工作:

$(document:not(.input-combo)).click(function(e){ 
    $(".label").removeClass("active"); 
}); 

$(".input-combo").click(function(e){ 
    e.preventDefault(); 

    var $this = $(this), 
     label = $this.find(".label"); 

    $(".label").removeClass("active"); 
    label.addClass("active"); 
});