Javascript 在jquery中添加和删除类
我正在尝试使用Javascript 在jquery中添加和删除类,javascript,jquery,addclass,removeclass,Javascript,Jquery,Addclass,Removeclass,我正在尝试使用slidetoggle和slideDown显示/隐藏我的div元素。它工作得非常好。 现在我想做的是,我只想addClass“visible divs”添加到visible div,并在它们隐藏时removeClass 问题是,该类已成功添加,但在向上滑动以隐藏它们时,它不会删除该类。我做错了什么 $(“.OffersContainer>div:gt(0)”).hide(); $(“.OffersContainer>span”)。单击(函数(){ this.clickCount=
slidetoggle
和slideDown
显示/隐藏我的div元素。它工作得非常好。
现在我想做的是,我只想addClass
“visible divs”添加到visible div,并在它们隐藏时removeClass
问题是,该类已成功添加,但在向上滑动以隐藏它们时,它不会删除该类。我做错了什么
$(“.OffersContainer>div:gt(0)”).hide();
$(“.OffersContainer>span”)。单击(函数(){
this.clickCount=(this.clickCount | | 0)+1
var command=this.clickCount%3==0?'slideToggle':'slideDown';
$(this).this(this.clickCount%3==1?“div:lt(3)”:“div:gt(0)”)[command]();
$('.pan-box').filter(':visible').addClass(“visible divs”);
$('.pan-box').filter(':hidden').removeClass(“可见divs”);
});代码>
A.
B
C
D
E
显示更多
要使其工作,您需要在动画完成后选择:visible
/:hidden
元素。为此,请使用回调函数参数:
$(".OffersContainer > span").click(function() {
this.clickCount = (this.clickCount || 0) + 1
var command = this.clickCount % 3 === 0 ? 'slideToggle' : 'slideDown';
$(this).siblings(this.clickCount % 3 === 1 ? "div:lt(3)" : "div:gt(0)")[command](function() {
$('.pan-box').filter(':visible').addClass("visible-divs");
$('.pan-box').filter(':hidden').removeClass("visible-divs");
});
});
顺便说一句,更改隐藏元素上的类有什么意义?根据定义,这种效果是看不到的。如果您不想等待动画完成,因为您已经知道要隐藏或显示哪些选项,那么您可以仅使用:hidden
选择器,而不必使用此代码:
$(“.OffersContainer>div:gt(0)”).hide();
$(“.OffersContainer>span”)。单击(函数(){
this.clickCount=(this.clickCount | | 0)+1
var command=this.clickCount%3==0?'slideToggle':'slideDown';
$(this).this(this.clickCount%3==1?“div:lt(3)”:“div:gt(0)”)[command]();
console.log(this.clickCount%3*3-1);
$('.pan-box:lt(+(this.clickCount%3*3)+')).addClass(“可见divs”);
$('.pan-box:gt(+(this.clickCount%3*3)+')).removeClass(“可见divs”);
});代码>
A.
B
C
D
E
显示更多
请在我的代码中将相关代码添加到OPLater中,我已经在那些具有class可见div的div上应用了一些逻辑。因此,一旦div被隐藏,我就需要去掉这个类。确切地说,我的观点是,你可以只使用:visible
,而不必维护类属性的状态。他还可以在动画之前添加/删除类,我想这是他想要的。否则,他需要将所有传入的代码放在回调函数中。@skobaljic他最初是这样做的,这就是为什么:hidden
元素从未删除过它们的类。如何删除?在动画完成之前,元素将一直可见,因此您必须使用回调