将类添加到父div时添加或删除类

时间:2015-11-02 06:53:20

标签: jquery

如果父div有一个已经添加了dinamically的类,我需要添加或删除一个类。我试过这个,但只有在点击时才有用。我需要检测是否已添加类,即使我没有单击它。所以,问题是:如何在添加类时执行函数,而不是在单击?

时执行
$(".accordion > .fa").click(function(){ 
if ($(this).parent().hasClass("active")) {
    $(this).removeClass('fa-angle-up');
    $(this).addClass('fa-angle-down');
}
else
{
   $(this).removeClass('fa-angle-down');
   $(this).addClass('fa-angle-up');
}
});

2 个答案:

答案 0 :(得分:1)

jQuery('.accordion').each(function(){
     if ($(this).hasClass('active')){
            $(this).children('.fa').removeClass('fa-angle-up');
            $(this).children('.fa').addClass('fa-angle-down');
        }else{
           $(this).children('.fa').removeClass('fa-angle-down');
           $(this).children('.fa').addClass('fa-angle-up');
        };
});

此代码需要作为设置/取消设置.accordion元素的事件的回调函数运行。

小提琴:https://jsfiddle.net/cop5uybb/1/

答案 1 :(得分:0)

使用$(this).parent(“active”)。你应该使用click函数选择器作为$(“。accordion .fa”)。删除不必要的“>”来自选择器。 Javascript代码就像是跟随。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
    $(".accordion  .fa").click(function(){ 

if ($(this).parent("active")) {
    $(this).removeClass('fa-angle-up');
    $(this).addClass('fa-angle-down');
}
else
{
   $(this).removeClass('fa-angle-down');
   $(this).addClass('fa-angle-up');
}
});
});

</script>