检查页面上是否存在类

时间:2017-09-05 15:20:58

标签: jquery

我试图检查div .full-screen是否在网页上不存在,这是正确的方法吗?

if (!$(".full-screen").length) {

    $(window).scroll(function() {
        if ($(this).scrollTop() < 50) { // this refers to window
            $(".header-container").addClass('transparent-menu');
        } else {
            $(".header-container").removeClass('transparent-menu');  
        }
    }); 

}

即使我知道该课程不存在于页面上,内部函数也会运行。

3 个答案:

答案 0 :(得分:1)

如果您希望在代码中的类 Not Found 时运行内部函数,则必须使用

if (!$(".full-screen").length){inner functions}

如果您希望在代码中找到类时运行内部函数,则必须使用

if ($(".full-screen").length){inner functions}

答案 1 :(得分:0)

考虑一个场景,该类存在并且您的逻辑与窗口滚动事件绑定,但是当该类丢失时,它还需要取消绑定,因此请尝试:

if (!$(".full-screen").length) {
  $(window).on("scroll", function() {
    if ($(this).scrollTop() < 50) { // this refers to window
        $(".header-container").addClass('transparent-menu');
    } else {
        $(".header-container").removeClass('transparent-menu');  
    }
  }); 

} else {
    $(window).off("scroll");
}

答案 2 :(得分:0)

您可以在文档上尝试使用hasClass()方法:

if (!$(document).hasClass(".full-screen")) {

    $(window).scroll(function() {
        if ($(this).scrollTop() < 50) { // this refers to window
            $(".header-container").addClass('transparent-menu');
        } else {
            $(".header-container").removeClass('transparent-menu');  
        }
    }); 

}