2011-07-25 23 views
0

我只有在啓用javascript時纔會顯示的網頁的一部分。使用javascript改變顯示屬性的格式化

我曾嘗試以下:

方法1:我設置了類display: hidden;然後改變它,如果JavaScript的工作通過重寫它...

<script type="text/javascript"> 
//<![CDATA[ 
$(document).ready(function() { 
    document.getElementById('only-show-if-js-enabled').style.display = 'block';}); 
//]]> 
</script> 


方法2:我將id更改爲一個已將顯示設置爲塊(或自動)...

<script type="text/javascript"> 
//<![CDATA[ 
$(document).ready(function() { 
    $("#js-not-enabled").attr('id', 'js-enabled'); 
}); 
//]]> 
</script> 


這兩種方法似乎使實際的格式被搞砸了,第一忽略我的CSS列表樣式是沒有,第二溢出是隱藏的。

發生了什麼事?

更新: 相當尷尬的是,我的溢出設置爲auto,只是認爲它被設置爲隱藏。我的錯。

儘管謝謝你的回覆,但他們都對最佳實踐等方面提供了一些啓示。

回答

0

這應該這樣做http://jsfiddle.net/kkwan/1/

$('#only-show-if-js-enabled').show(); 

吧,我有點錯過了整個問題在這裏...嗯,確實沒有你提到的代碼的CSS工作,如果你改變了display: none;display: block;或者,如果你螢火它或什麼..?

0

對於這種事情的現代方法是讓您記錄功能齊全做到這一點:

<script type="text/javascript"> 
//<![CDATA[ 
$(document).ready(function() { 
    $("body").addClass("js"); 
//]]> 
</script> 

然後在你的CSS,你可以使用它作爲一個鉤子,只顯示事情啓用JS-(或禁用)設備。

#OnlyShowWhenJsDisbaled { display: none; } /*hide by default */ 
body.js #OnlyShowWhenJsEnabled { display: block; } /*show when js has been confirmed*/