2012-08-11 60 views
1

我正在嘗試使用動態XUL和Jquery創建Firefox擴展。當我定義使用Jquery顯示方法在XUL中無法正常工作

<vbox class="b" id="event" style="display:none"></vbox> 

的元素,當我嘗試用

$('.b').show(); 

命令,它工作正常。

但是,當我嘗試使用定義

<vbox class="b" id="event"></vbox> 

display:none 

在另一個.css文件中的風格元素,並試圖表明使用上述相同的jQuery代碼,其不工作。

我試着檢查相關的css文件是否正確附加了元素(通過更改其他屬性來檢查路徑是否正確),並且它工作正常。

隨着一些帖子在堆棧溢出我嘗試使用Modernizr與所有CSS功能包括在內。它顯示了我無法顯示的vbox元素。但它提供了頁面底部的所有輸出。 使用的jquery版本是jquery-1.3.2.min.js。 任何我失蹤?

+0

可能是舊的jQuery? 1.8.0是目前穩定 – 2012-08-11 01:03:00

+0

嘗試.toggle而不是.show,看看會發生什麼? – AbiusX 2012-08-11 01:14:28

+0

@ eicto我幾乎所有的jQuery版本都嘗試過,沒有任何改變。 – Hareesh 2012-08-11 03:08:21

回答

1

問題是,XUL框元素使用CSS display屬性的不同值。他們使用專有-moz-box而不是block,因爲它們必須是靈活的盒子。 jquery的show()方法設置display: block,這種類型的工作在XUL,但不完全。

所以,使其正常工作,你應該這樣做顯示的XUL框元素:

myElement.style.display = '-moz-box';