2017-09-05 52 views
0

我試圖檢查一個頁面上是否存在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

該代碼應該做工精細 – j08691

+1

是的,它是** _ **一_正道做到這一點。 –

+1

這段代碼看起來不錯,請檢查你是否啓用了這個類。 – Alex

回答

1

,如果你希望你的內部函數運行時類不要在你的代碼中發現,則必須使用

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

如果要在類在你的代碼中發現你的內在功能來看,你必須使用

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

雖然這與我的原始代碼相同,但它工作。我一定會碰到其他東西。我無法刪除該問題,因此我只是接受此問題,因爲它是正確的 – Rob

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"); 
} 
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'); 
     } 
    }); 

} 
+0

'hasClass(「。full-screen」)'將檢查元素是否具有「.full-screen」類,而不是具有「全屏」類。除此之外,這不會做OP的要求。 –