Javascript 简单jQuery条件语句

Javascript 简单jQuery条件语句,javascript,jquery,Javascript,Jquery,我的网站上有一个非常简单的脚本 如果标题可见,它将删除类fixed,如果不可见,它将添加它 $(function() { $(window).scroll(function() { $(".wrapper > header").visible(true) ? $(".wrapper > main > nav").removeClass("fixed") : $(".wrapp

我的网站上有一个非常简单的脚本

如果标题可见,它将删除类
fixed
,如果不可见,它将添加它

$(function() {
        $(window).scroll(function() {
            $(".wrapper > header").visible(true) ?
                $(".wrapper > main > nav").removeClass("fixed") :
                $(".wrapper > main > nav").addClass("fixed");
        });
    });
除了在
fixed
类之间切换之外,我还想在
fixed2
类之间切换

因此,请加上:

$(".scrollWrapper").removeClass("fixed2") :
$(".scrollWrapper").addClass("fixed2");

但是我不确定如何添加它。

jquery对象中没有称为visible的属性。所以你需要使用

$(".wrapper > header").is(":visible)
因此,表达式变成:

 $(".wrapper > header").is(":visible") ?
            $(".wrapper > main > nav").addClass("fixed") :  $(".wrapper > main > nav").removeClass("fixed") ;
用于切换:

$(".scrollWrapper").toggleClass('fixed fixed2');

jquery对象中没有称为visible的属性。所以你需要使用

$(".wrapper > header").is(":visible)
因此,表达式变成:

 $(".wrapper > header").is(":visible") ?
            $(".wrapper > main > nav").addClass("fixed") :  $(".wrapper > main > nav").removeClass("fixed") ;
用于切换:

$(".scrollWrapper").toggleClass('fixed fixed2');

由于将有两条语句,因此需要恢复为正常的if/else:

if($(".wrapper > header").visible(true)){
     $(".wrapper > main > nav").removeClass("fixed");
     $(".scrollWrapper").removeClass("fixed2");
}else{
     $(".wrapper > main > nav").addClass("fixed");
     $(".scrollWrapper").addClass("fixed2");
}
或者,不要使用任何条件,并为此使用
toggleClass
方法:

var toggle = $(".wrapper > header").visible(true);
$(".wrapper > main > nav").toggleClass("fixed", toggle);
$(".scrollWrapper").toggleClass("fixed2", toggle);

注意:以上假设您有一个
可见的
-插件,否则该方法将无法工作。若要测试可见性,应使用is
。is(“:visible”)

因为您将有两条语句,所以需要还原为正常的if/else:

if($(".wrapper > header").visible(true)){
     $(".wrapper > main > nav").removeClass("fixed");
     $(".scrollWrapper").removeClass("fixed2");
}else{
     $(".wrapper > main > nav").addClass("fixed");
     $(".scrollWrapper").addClass("fixed2");
}
或者,不要使用任何条件,并为此使用
toggleClass
方法:

var toggle = $(".wrapper > header").visible(true);
$(".wrapper > main > nav").toggleClass("fixed", toggle);
$(".scrollWrapper").toggleClass("fixed2", toggle);

注意:以上假设您有一个
可见的
-插件,否则该方法将无法工作。要测试可见性,您应该使用is
。is(“:visible”)

如果您根据某个条件执行一些操作,那么最好使用if语句,而不是三元语句

$(function() {
    $(window).scroll(function() {
        if($(".wrapper > header").visible(true)){
            $(".wrapper > main > nav").removeClass("fixed");
            $(".scrollWrapper").removeClass("fixed2");
        }else{
            $(".wrapper > main > nav").addClass("fixed");
            $(".scrollWrapper").addClass("fixed2");
        }
    });
});

Ternary很好,但它们都有自己的用例。这可能不是其中之一。

如果你根据一个条件做一些事情,那么最好使用if语句,而不是三元语句

$(function() {
    $(window).scroll(function() {
        if($(".wrapper > header").visible(true)){
            $(".wrapper > main > nav").removeClass("fixed");
            $(".scrollWrapper").removeClass("fixed2");
        }else{
            $(".wrapper > main > nav").addClass("fixed");
            $(".scrollWrapper").addClass("fixed2");
        }
    });
});

Ternary很好,但它们都有自己的用例。这可能不是其中之一。

您可以使用if-else语句而不是三元语句。毕竟,jQuery是一个JavaScript库

$(function() {
    $(window).scroll(function() {
        if ($(".wrapper > header").visible(true)) {
            $(".wrapper > main > nav").removeClass("fixed");
            $(".scrollWrapper").removeClass("fixed2");
        } else {
            $(".wrapper > main > nav").addClass("fixed");
            $(".scrollWrapper").addClass("fixed2");
        }
    });
});
如果您真的打算只使用三元语句,您只需添加另一个语句:

$(function() {
    $(window).scroll(function() {
        $(".wrapper > header").visible(true) ?
            $(".wrapper > main > nav").removeClass("fixed") :
            $(".wrapper > main > nav").addClass("fixed");
        $(".wrapper > header").visible(true) ?
            $(".scrollWrapper").removeClass("fixed2") :
            $(".scrollWrapper").addClass("fixed2");
    });
});

您可以使用if-else语句而不是三元语句。毕竟,jQuery是一个JavaScript库

$(function() {
    $(window).scroll(function() {
        if ($(".wrapper > header").visible(true)) {
            $(".wrapper > main > nav").removeClass("fixed");
            $(".scrollWrapper").removeClass("fixed2");
        } else {
            $(".wrapper > main > nav").addClass("fixed");
            $(".scrollWrapper").addClass("fixed2");
        }
    });
});
如果您真的打算只使用三元语句,您只需添加另一个语句:

$(function() {
    $(window).scroll(function() {
        $(".wrapper > header").visible(true) ?
            $(".wrapper > main > nav").removeClass("fixed") :
            $(".wrapper > main > nav").addClass("fixed");
        $(".wrapper > header").visible(true) ?
            $(".scrollWrapper").removeClass("fixed2") :
            $(".scrollWrapper").addClass("fixed2");
    });
});

他试图将
fixed2
添加到
.scrollWrapper
,而不是nav块。@诚实:是复制粘贴错误。现在修好了。谢谢你指出这一点。他试图将
fixed2
添加到
.scrollWrapper
,而不是导航块。@诚实:是的,复制粘贴错误。现在修好了。谢谢你指出这一点。