web-dev-qa-db-ja.com

JQuery「これと、もしそうなら」

これは非常に簡単なはずですが、私にとってはうまくいきません。私は言いたい:

これにクラス「current」がない場合、および本体クラスが「home」に等しくない場合、これを行います。

これは私が(他のことの中で)役に立たないことを試みているものです。最初の条件付きのみが機能します。

$(".nav1 > ul > li").mouseleave(function() {

    if ( (!$(this).hasClass("current")) || (!$(body).hasClass("home"))  ){
         $(this).find(".nav-overlay").show();   
    }

}); 

私は何を間違えていますか?ありがとうございました!

明確さのための更新:

次の条件に該当する場合にのみ、「。nav-overlay」を表示します。

  1. あなたはホームページにいません(body class = "home")AND
  2. 「.nav1> ul> li」クラスが「current」と等しくない
12
LBF

$("body")&&

   if ( (!$(this).hasClass("current")) && (!$("body").hasClass("home"))  ){
    //...

または、このように、それは短くなります:

   if ( !$(this).is(".current") && !$("body").is(".home")  ){
     //...
25
Cherniv