3

我想用jQuery UI Button做这样的事情:

$button.button();
// ...
$button.button('hide');
// ...
$button.button('show');

类似于如何enable/disable工作。手动隐藏和显示按钮 ( $button.hide(); $button.show();) 会导致使用 jQuery UI CSS 进行一些非常混乱的格式化......

我在这里错过了一些简单的东西吗?

4

6 回答 6

2

只做标准$button.hide()应该可以很好地完成工作,到底是什么搞砸了?

你可以这样做$button.css('display', 'none'),但无论如何这就是全部$button.hide()

我很确定没有办法按照你的要求做,即使它只会设置 display: none 像我刚才提到的方法。您最好弄清楚为什么设置 display none 会破坏页面其他地方的 CSS。

于 2011-05-06T16:09:28.837 回答
1

如果使用样式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();

我以前不得不这样做几次。

于 2011-05-06T20:08:16.723 回答
1

这是旧的,我知道,但是......而不是最初定义要隐藏在 CSS 中的按钮,而是使用 ui-helper-hidden 类定义它。这样它就会被隐藏,直到你实例化它。display:none 隐藏一个元素,它不会占用任何空间。该元素将被隐藏,页面将显示为好像该元素不存在一样。这与隐藏按钮不同,因为这样它仍应占用屏幕空间。

如果您需要它在实例化后最初保持隐藏,您可以隐藏它

$elem.button().hide();

生成的 jQuery UI 按钮将具有 display:inline-block,覆盖 ui-helper-hidden 的 display:none。

我从来没有遇到过渲染奇怪的问题,所以你的问题可能有一个潜在的问题。

于 2012-05-25T12:22:45.887 回答
0
**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>
于 2012-11-26T09:47:40.403 回答
0

这对我来说是解决方法。如果 jquery ui 改变了实现,那么就无法保证了。

$('#button-el').next().hide();

于 2013-07-18T06:08:49.837 回答
0

对我有用的是:

onclick="$(this).parent().css('display', 'none');"

于 2013-09-15T22:33:30.487 回答