Jquery“if this and if that”然后这样做

时间:2013-08-13 18:16:09

标签: jquery conditional-statements

这应该是这么简单,但它对我不起作用。我想说:

如果没有“当前”类,如果身体类不等于“家”,那么就这样做....

这是我正在尝试(除其他事项外)无济于事。只有第一个条件才有效。

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

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

}); 

我做错了什么?谢谢!

更新清晰度:

我只想在满足以下条件时显示“.nav-overlay”:

  1. 你不在主页(body class =“home”) 和
  2. “.nav1> ul> li”类不等于“当前”

2 个答案:

答案 0 :(得分:23)

尝试$("body")&&

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

或者这样,它更短:

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

答案 1 :(得分:4)

如果body 变量,请将其作为HTML标记访问:添加引号。此外,AND&&而非||(即OR}:

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

如果body是jQuery对象,则可以直接... && !$body.hashClass(...)