В любом случае, чтобы программно скрыть кнопку пользовательского интерфейса jQuery? - PullRequest
3 голосов
/ 06 мая 2011

Я бы хотел сделать что-то подобное с jQuery UI Button :

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

Аналогично тому, как enable/disable работает. Скрытие и отображение кнопки вручную ($button.hide(); $button.show();) приводит к некоторому по-настоящему странному форматированию с CSS-интерфейсом jQuery ...

Я что-то упускаю здесь?

Ответы [ 6 ]

2 голосов
/ 06 мая 2011

Просто выполнение стандартного $button.hide() должно нормально работать, что именно он испортил?

Вы можете сделать $button.css('display', 'none'), но это все, что $button.hide() делает в любом случае.

Я почти уверен, что нет способа сделать то, что вы просите, и даже если бы он только отображал: ни один из методов, которые я только что упомянул. Возможно, вам лучше понять, почему настройка display none приводит к неработоспособности вашего CSS в другом месте на странице.

1 голос
/ 25 мая 2012

Старый это, я знаю, но ... Вместо того, чтобы определять кнопку, которая будет изначально скрыта в CSS, определите ее с помощью класса ui-helper-hidden.Таким образом, он будет скрыт до тех пор, пока вы его не создадите.display: none скрывает элемент и не занимает места.Элемент будет скрыт, и страница будет отображаться так, как если бы элемента там не было.Это отличается от того, чтобы сделать кнопку скрытой, так как в этом случае она по-прежнему должна занимать место на экране.

Если вам нужно, чтобы она изначально оставалась скрытой после создания экземпляра, вы можете скрыть ее

$elem.button().hide();

Получившаяся кнопка пользовательского интерфейса jQuery будет отображать: inline-block, переопределяя отображение ui-helper-hidden: нет.

У меня никогда не было проблем с рендерингом странным образом, поэтому ваша проблема могла иметь основную проблему.

1 голос
/ 07 мая 2011

Если вы используете стиль visibility вместо display, кнопка должна быть в состоянии создать правильно.Стиль visibility: hidden просто делает элемент невидимым;стиль display: none, который использует $ .hide (), фактически удаляет элемент из DOM.время до.

0 голосов
/ 16 сентября 2013

Для меня сработало следующее:

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

0 голосов
/ 18 июля 2013

Это обходное решение для меня.Что если jquery ui изменит реализацию, тогда нет никакой гарантии.

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

0 голосов
/ 26 ноября 2012
**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>
...