2011-09-10 58 views
4

在一個jQuery的項目,我必須找到這一行尋找無JS類html標記:消除與jQuery

var Application=function(c){ 
    $("html:first").removeClass("no-js"); 
} 

想了解這一行,什麼是他的目的是什麼?

+0

請注意,這是一個_class_'no-js',而不是一個屬性。 –

+0

謝謝我編輯過的標題。 – user784083

回答

2

這是爲了降解Javascript。

例如,假設您在頁面上隱藏了某些東西,然後當有人用JS點擊某件東西時就會變得可見。如果訪問者在JS關閉的情況下來到該網站,那麼看不到隱藏內容的簡單方法。

爲了解決這個問題,你可以設置一個特殊的CSS,它只在JS關閉時運行,在頁面的根目錄下有一個'no-js'類,並且在運行JS的頁面上移除該類。

.hidden { 
    display: none; 
} 

.no-js .hidden { 
    display: block; 
} 
+0

它不能更清楚!謝謝你的話! – user784083

4

這行jQuery從html標記中刪除了一個no-js類。 no-js類可能被設置在HTML中。這一點是告訴CSS是否啓用JS。
例如,我可能有一個<div>,我想在用戶單擊按鈕時淡入。起初,在div需要被隱藏,所以我可能會在CSS中做到這一點:

#theDiv { 
    display: none; 
} 

然後我用這個jQuery的,當他們按一下按鈕:

$('#theDiv').fadeIn() 

但是,現在我們有一個問題。如果用戶啓用了JS,則一切正常。但是如果他們沒有啓用JS,那麼該框將保持隱藏狀態並且永不出現。通過添加下面的CSS,我們將展示框,如果JS被關閉:

.no-js #theDiv { 
    display: block; 
} 

然後我們添加一個類的HTML標籤:

<html class="no-js"> 

現在,如果JS被打開,JS刪除類no-js和框保持隱藏,直到JS淡入。如果JS關閉,該框始終顯示。
希望有幫助!

+0

是很好的解釋。這很清楚! – user784083

+0

謝謝!樂意效勞。不要忘記接受答案! – Abraham