2017-04-22 8 views
0

したがって、本体が "shifter-open"クラスでない場合にのみスクリプトを実行しようとしています。 「シフターオープン」級は、このスクリプトによって身体に追加されます:(私は(場合に使用する方法がわかりますbodyにクラスがない場合はコードを実行します

$(document).ready(function() { 
    $("body").addClass("shifter shifter-active"); 

    $('.shifter-handle').click(function() {   
     $("body").toggleClass("shifter-open"); 
     $(".scrollheader").toggleClass("hovered"); 
    }); 
}); 

体は、クラスをしていない場合にのみ実行されなければならない私のスクリプトは次のようになります! $(「身体」))

if (!$("body").hasClass("shifter-open")) { 
    $(document).ready(function() { 
    var $header = $(".scrollheader"); 
    $header.hover(function() { 
     if ($(window).scrollTop() == 0) { 
     $header.addClass('hovered'); 
     } 
    },function() { 
     if ($header.hasClass('hovered')) { 
     $header.removeClass('hovered'); 
     } 
    }); 
    }); 
} 
+0

後にユーザーが切り替えることができるので、あなたは、イベントハンドラ内でチェックする必要があります...待って、あなたがしているクラスチェックしたいのは、 'shifter-handle' iをクリックした?そのクリックがいつ行われるのかわからないので、いつ実行するのかわかりません。おそらく、 'ホバー'ハンドラーをバインドして、それらのクラス内のクラスをチェックする必要があります。 –

答えて

1

クラスは、ページのロード

$(document).ready(function() { 
    var $header = $(".scrollheader"); 
    $header.hover(function() { 
    if ($("body").hasClass("shifter-open") && $(window).scrollTop() == 0) { 
     $header.addClass('hovered'); 
    } 
    }, function() {  
    if ($("body").hasClass("shifter-open")) {// no need to check if the hovered class exists 
     $header.removeClass('hovered'); 
    } 
    }); 
}); 
関連する問題