2010-06-01 136 views
0

我想實現一些非常基本的東西,但jquery沒有做我期望的東西!我有一個ID爲「東西」的div。在CSS中,我將display屬性設置爲「none」,目的是用jquery進行更改。這種方式div是隱藏的,除非用戶啓用了js。我的jQuery代碼只是奇怪的jquery行爲

$("#stuff").show(); 

不幸的是,這是行不通的,div仍然隱藏。

更新:它現在似乎在INTERMITENTLY工作在Chrome和IE8。仍然沒有在ff。

+3

你是否已將它包裝在'ready'處理程序中? – Sarfraz 2010-06-01 14:11:07

+1

你能發佈所有相關的代碼嗎? – 2010-06-01 14:13:04

+0

適合我; http://www.jsfiddle.net/unTWA/ – Matt 2010-06-01 14:13:19

回答

4

確保你的代碼運行時,DOM是準備好了,這樣的:

$(function() { 
    $("#stuff").show(); 
}); 

$(function() {}) is short for $(document).ready(function() { });,當DOM準備就緒,例如這個運行的代碼你的div實際上是在那裏找到的。否則,您的選擇器(除非這是在<body>的末尾)可能沒有找到任何東西。您可以通過將alert($("#stuff").length);放在您的代碼所在的位置(如果它提示0)來看到這一點,這很可能是問題所在。

+0

這不僅僅是類似的問題,而是在實際的html內容被解析到DOM之前運行你的函數,所以它不存在。通過在DOM完全加載時運行該函數,您的div將處於可能範圍內。 – RobertPitt 2010-06-01 14:33:47

+0

查看上面的評論...另外,雖然我沒有嘗試過警報,但是當我檢查螢火蟲中的HTML時,它確實按照預期顯示爲具有原始CSS規則的DOM的一部分。 – musoNic80 2010-06-01 14:34:00

+1

@ musoNic80 - 警報顯示什麼?忽略我們提供的調試技巧,只提供一行代碼而沒有標記並不是找到問題的最佳方法... – 2010-06-01 14:38:38