Jquery Toggle Problem - PullRequest
       10

Jquery Toggle Problem

1 голос
/ 22 июня 2011

Как мне скрыть элемент выбора, и всякий раз, когда я нажимаю кнопку, она отображается, а когда я нажимаю ее снова, она скрывает? Пока у меня есть следующий код, кажется, не работает, как я ожидал. Я знаю, что переключение, вероятно, является методом решения этой проблемы в jquery.

<form id="myForm">
<input type='button' name='button' id='testbtn' value='Test Button' />
<br>
<select style="visibility:hidden" id='List' name='List'/>
</form>

$("#testbtn").click(function() {
   $('#List').toggle();
});

Ответы [ 5 ]

4 голосов
/ 22 июня 2011

Изменение:

<select style="visibility:hidden" id='List' name='List'/> </form>

Кому:

<select style="display:none" id='List' name='List'/> </form>

jQuery.toggle изменяет свойство display CSS

http://api.jquery.com/toggle/

2 голосов
/ 22 июня 2011

Изменить видимость: скрыто для отображения: нет. JQuery переключает атрибут отображения.

<form id="myForm">
<input type='button' name='button' id='testbtn' value='Test Button' />
<br>
<select style="display: none;" id='List' name='List'/>
</form>

$("#testbtn").click(function() {
   $('#List').toggle();
});

http://jsfiddle.net/apQYD/1/

0 голосов
/ 22 июня 2011

Здесь четко указать, что

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

показать, что я предлагаю другой способ использования класса и удалить style="" из select

css:

   .hide { display: none };

JQuery:

$("#testbtn").click(function() {
   $('#List').toggleClass('hide');
});

DEMO

0 голосов
/ 22 июня 2011

Насколько я знаю, toggle () зависит от свойства display, а не от свойства visibility.

Попробуйте установить отображение: none вместо видимости: hidden.

<select style="display:none" id='List' name='List'/>
0 голосов
/ 22 июня 2011

Не используйте visibility:hidden в своем стиле. Вместо этого используйте display:none.

...