2012-07-11 48 views
2

我有一個包含熱點圖像的DIV。它被設置爲默認隱藏。奇怪的jQuery顯示()問題 - 我沒有看到什麼?

我有一個功能,我打電話來顯示它。

在功能上,這部作品:

$('#adChart').css("visibility", "visible"); 

但是,這並不工作:

$('#adChart').show(); 

這不起作用,或者:

$('#adChart').fadeIn(1000); 

(而我真的想要做的是淡入淡出,但是我甚至不能在這一點上做一個簡單的演示()來工作。)

使用Document-ready進行包裝也無濟於事。我不相信我需要用準備好的文件來包裝代碼中的每個函數定義,是嗎?有數百個。

對此提出建議?

+1

你能把一個[小提琴](http://jsfiddle.net/)展示這個問題嗎? – 2012-07-11 16:52:17

+0

這可能是一個Z指數問題。你可以向我們展示你的HTML和jQuery以及這個場景中的所有元素。 – Lowkase 2012-07-11 16:52:27

回答

2

.show()方法不影響visibility。它修改display屬性,fadeIn()也是一樣。這就是爲什麼它不起作用。

.show()是一個shorcut:css("display", "");

所以,如果你想使用.show()fadeIn()你應該使用display CSS屬性而不是visibility

+2

+1,因爲這是正確的答案。然而,看看jQuery的源代碼,我認爲它實際上是css(「display」,「」)或css(「display」,)的快捷方式,具體取決於您是否將原始CSS設置爲某種除了默認並調用hide()來隱藏它。 – MichaC 2012-07-11 17:05:19

+0

是的。我現在發現,如果我首先在DIV上使用'hide()'(當頁面加載時在Init函數內部),那麼fadeIn(1000)和show()都可以工作。我猜hide()設置'display'css屬性,然後其他Jquery函數可以正確使用該屬性。不知道如果沒有你們在StackOverflow上,我會如何快速找到它。 – BornInChicago 2012-07-11 17:12:04

+1

請記住,從設計的角度來看,這是兩件不同的事情。切換'visibility'屬性始終保持內容流中的元素,而切換'display'(或'show()'&'hide()')則將內容流入/流出內容流。換句話說,當使用後一種方法時,周圍的內容可能會移動。 – Sparky 2012-07-11 21:07:20

-2

試試這個:

$('#adChart').css({"visibility": "visible","display":"block","opacity":1});