2016-03-02 48 views
1

這裏是我的代碼的jQuery removeClass不工作的彈出

jQuery('.woshadow').click(function(){ 
    jQuery(this).find('.popup-list').addClass('popup-listh'); 
    jQuery(this).find('.close-popup').addClass('popup-listh'); 
}); 

jQuery('.close-popup').click(function(){ 
    jQuery(this).parent().find('.popup-list').removeClass('popup-listh'); 
    jQuery(this).removeClass('popup-listh'); 
}); 

當我使用addClass代替removeClass它的罰款,並正常工作,但它不與removeClass工作是真的難得的任何建議嗎?

+3

你能添加你的html代碼嗎? – msvairam

+0

請添加html代碼。你使用的是哪個版本的jquery(也許最好使用on('click',...)')? – dex

+0

我懷疑一些事件傳播...如果你點擊'.close-popup',事件傳播到'.woshadow'級別,所以重新添加class –

回答

2

如果你點擊.close-彈出,事件傳播到.woshadow水平, 所以重新添加類

簡單的解決辦法是子元素停止事件傳播:

jQuery('.close-popup').click(function(e){ 
    e.stopPropagation(); 
    jQuery(this).parent().find('.popup-list').removeClass('popup-listh'); 
    jQuery(this).removeClass('popup-listh'); 
});