如何在jQuery中完成OR操作?

时间:2013-01-05 21:03:03

标签: jquery conditional or-operator

$(document).ready(function(){
if (!$('body').hasClass('home') || !$('ul#main-menu li.wwd').hasClass('active')){
$("ul#sub-menu").css('display','none');
$(".main-content").css('margin-top','13px');
$("ul#sub-menu").mouseover(function() {
        $("ul#sub-menu").show();
        $(".main-content").css('margin-top','62px');

}).mouseout(function() {
        $("ul#sub-menu").hide();
        $(".main-content").css('margin-top','13px');
});
$("li.wwd").mouseover(function() {
        $("ul#sub-menu").show();
        $(".main-content").css('margin-top','62px');
}).mouseout(function() {
        $("ul#sub-menu").hide();
        $(".main-content").css('margin-top','13px');
});
}
if ($('ul#main-menu li.wwd').is('.active')){
        $(".main-content").css('margin-top','62px');

}
})

我需要在主页以外的所有页面上运行此jQuery(工作正常),但不要在li.wwd具有类active的页面上运行此jQuery。我认为这可以用于OR操作,但事实并非如此。感谢您提前提供任何帮助。

2 个答案:

答案 0 :(得分:4)

要评估两个地方的!(not)条件,您需要使用&&代替||,就像

一样
if (!$('body').hasClass('home') && !$('ul#main-menu li.wwd').hasClass('active'))
{
    // code goes here
}

答案 1 :(得分:0)

由于您使用的是否定运算符(!),当您遇到以下任何一种情况时,您的代码块当前正在运行:

  1. 正文 NOT 让“home”类或
  2. ul#main-menu li.wwd NOT 让班级“活跃”
  3. 所以我怀疑你的主页代码似乎工作正常,因为在那个页面上,ul#main-menu li.wwd可能没有“激活”类?