如果使用visibility
而不是display
,則該按鈕應該能夠正確創建。 visibility: hidden
風格只是使元素不可見; $ .hide()使用的display: none
樣式實際上會從渲染的DOM中移除元素。
因此,在短期試:
var newButton = $('a#some-button.hidden');
// Hide element, but allow it to use render space
newButton.attr('visibility', 'hidden');
newButton.attr('display', 'block');
// Create button
newButton.button();
// Revert element to the "normal" means of hiding (may be unnecessary)
newButton.attr('display', 'none');
newButton.attr('visibility', 'visible');
// Show button
newButton.show();
我已經收到此做一些時間。
這個問題(我最好說的是)我需要實例化隱藏元素上的按鈕,jQuery UI似乎並不喜歡。我不認爲它可以計算出適當的尺寸或其他東西。我已經檢查過了,沒有其他與之相關的衝突CSS(只是股票UI CSS)。我想我可以製作按鈕,然後隱藏它,但是然後我得到那個「閃光」,我寧願避免... – neezer 2011-05-06 16:16:53
我明白,這是煩人的 - 你是如何創建按鈕? – jcvandan 2011-05-06 16:18:58
按鈕隱藏着一個CSS類'hidden'。當DOM被加載時,我用'$('a#some-button.hidden')。button();'創建按鈕。然後,當我用'$('a#some-button.hidden')。show();'在代碼中顯示它們時,它們看起來都是重擊(它們看起來像全寬度塊元素,沒有頂部/底部邊框和沒有背景)。如果我在按鈕上執行完全相同的過程,而這些過程最初並不是通過'.hidden'隱藏的,它們渲染得很好。 – neezer 2011-05-06 16:54:24