2016-03-02 95 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'); 
});