如果使用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