我想用jQuery UI Button做这样的事情:
$button.button();
// ...
$button.button('hide');
// ...
$button.button('show');
类似于如何enable/disable
工作。手动隐藏和显示按钮 ( $button.hide();
$button.show();
) 会导致使用 jQuery UI CSS 进行一些非常混乱的格式化......
我在这里错过了一些简单的东西吗?
我想用jQuery UI Button做这样的事情:
$button.button();
// ...
$button.button('hide');
// ...
$button.button('show');
类似于如何enable/disable
工作。手动隐藏和显示按钮 ( $button.hide();
$button.show();
) 会导致使用 jQuery UI CSS 进行一些非常混乱的格式化......
我在这里错过了一些简单的东西吗?
只做标准$button.hide()
应该可以很好地完成工作,到底是什么搞砸了?
你可以这样做$button.css('display', 'none')
,但无论如何这就是全部$button.hide()
。
我很确定没有办法按照你的要求做,即使它只会设置 display: none 像我刚才提到的方法。您最好弄清楚为什么设置 display none 会破坏页面其他地方的 CSS。
如果使用样式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();
我以前不得不这样做几次。
这是旧的,我知道,但是......而不是最初定义要隐藏在 CSS 中的按钮,而是使用 ui-helper-hidden 类定义它。这样它就会被隐藏,直到你实例化它。display:none 隐藏一个元素,它不会占用任何空间。该元素将被隐藏,页面将显示为好像该元素不存在一样。这与隐藏按钮不同,因为这样它仍应占用屏幕空间。
如果您需要它在实例化后最初保持隐藏,您可以隐藏它
$elem.button().hide();
生成的 jQuery UI 按钮将具有 display:inline-block,覆盖 ui-helper-hidden 的 display:none。
我从来没有遇到过渲染奇怪的问题,所以你的问题可能有一个潜在的问题。
**This might be easy for you:
Try this code:**
<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
$("p").click(function(){
$(this).hide();
});
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p><button id="demo"/>Hide me</button></p>
</body>
</html>
这对我来说是解决方法。如果 jquery ui 改变了实现,那么就无法保证了。
$('#button-el').next().hide();
对我有用的是:
onclick="$(this).parent().css('display', 'none');"