2014-01-09 59 views

回答

11

您需要防止事件佈雷了DOM樹,以便使用event.stopPropagation()

$('.close').click(function(e) { 
    e.stopPropagation(); 
    $(this).parent().css('opacity','0'); 
    $(this).parent().css('z-index','-999'); 
}); 

Updated Fiddle

+0

我明白了!這就是爲什麼它與其他CSS屬性...謝謝! –

1

你仍然在你的李點擊並運行你的函數兩次。 所以基本上它消失並重新出現。當這種情況發生時我會使用它。

$('#selection li').click(function() { 
    if($(this).hasClass('clicked')) { 
    $(this).removeClass('clicked'); 
    return; 
    } 
    $(this).addClass('clicked'); 
    $(this).find('.overlay').css('opacity','1'); 
    $(this).find('.overlay').css('z-index','9999'); 
}); 

$('.close').click(function() { 
    $(this).parent().css('opacity','0'); 
    $(this).parent().css('z-index','-999'); 
}); 
+0

我使用這個,因爲有時e.stopPropagation()可能會導致我想要運行的其他代碼的問題。這是更有限的,可以讓你擺脫困境。 – pathfinder

+1

下次我遇到這個時,我會記住它。我現在會使用stopPropagation,因爲我試圖做的事很簡單。非常感謝! –