2012-02-18 95 views
0

我尝试创建类似菜单的手风琴时出现问题。jquery检查类是否被分配

事情就是一切都很好。第一个“气球”打开并滑动,将正确的课程添加到活动气球,但问题是当您单击已添加“活动”类的气球上的图像保持器时。 JQuery的似乎添加此风格:

display: block; overflow: hidden;

,它打乱了我的CSS。

所以我的问题是如何检查用户是否已经点击了“活动气球”,如果是这种情况,请不要做任何事情(或者将其滑回来以便关闭)或者如何删除额外的样式被添加 - 为什么它首先被添加?

回答

0

您可以检查类是否存在等作为

if($("element").hasClass("class")) 

hasClass

0

jQuery的滑动动画增加时,这些风格的节目内容。

您可以使用hasClass来检查元素中是否存在active类。

if(!$(element).hasClass('active')){ 
    //Do something 
} 

如果要切换滑动行为,可以使用slideToggle方法。

$(element).slideToggle(500, function(){ 
    var $this = $(this); 
    if($this.is(':visible')){ 
     $this.addClass('active'); 
    } 
    else{ 
     $this.removeClass('active'); 
    } 
}); 

slideToggle方法需要的第二参数作为其在动画结束执行的回调。您可以使用它并有条件地添加/删除所需的类。

请注意,我正在使用is()方法检查元素是否可见或使用伪选择器:visible

欲了解更多信息请检查下面的方法的API参考

+0

嗨,我已经包裹着我的函数为'如果(!$( #accordion li).hasClass('active')){function here ....'\t但它现在不会滑动? – Peter 2012-02-18 17:14:12

+0

hasClass('active')'如果元素具有'active'类,将返回'true'。你确定要检查这种情况吗? – ShankarSangoli 2012-02-18 17:16:15

+0

其实是的,如果它有班级活动 - 我想绝对“没有”。现在它将一块内联CSS添加到已经有效的元素中,而我实际上不需要对已经有效的元素进行任何操作。谢谢 ! – Peter 2012-02-18 18:05:02