еще один вопрос "переключения видимости" - PullRequest
2 голосов
/ 26 сентября 2011

Я застрял со следующим кодом:

http://jsfiddle.net/2v4aJ/

Я хочу переключить текст, используя скрытый / видимый.

Я использую функции JavaScript для добавлениядинамический текст на страницу, поэтому я использую .live ...

Я могу переключиться, чтобы скрыть, но не видеть (если ($ ('# 1'). is (': hidden'))никогда не бывает правдой).

Любая помощь приветствуется: -)

Ответы [ 4 ]

1 голос
/ 26 сентября 2011

в соответствии с документами jQuery: скрыто ,

Элементы с видимостью: скрытые считаются видимыми, поскольку они по-прежнему занимают место в макете

так что вам лучше проверить значение.

if ($('#1').css('visibility')==='hidden')

или используйте другой метод

1 голос
/ 26 сентября 2011

Проблема в том, что псевдоселектор :hidden обрабатывает элементы с visibility:hidden как видимые, поскольку они все еще занимают место на странице.Из документов jQuery:

Элементы с видимостью: скрытый или непрозрачность: 0 считаются видимыми, поскольку они по-прежнему занимают место в макете.

Вместо этого выможно проверить значение самого свойства CSS:

if($('#1').css("visibility") === "hidden") {
    $('#1').css('visibility','visible');
}
else {
    $('#1').css('visibility','hidden');
}
0 голосов
/ 26 сентября 2011

используйте команду toggle .

$('#1').toggle(true); //show
$('#1').toggle(false); //hide
$('#1').toggle(); //flip
0 голосов
/ 26 сентября 2011

Прежде всего :hidden селектор не для вас:

Элементы с видимостью: скрытый или непрозрачность: 0 считаются видимыми, поскольку они все еще занимают место в макете.

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

Также обратите внимание, что visibility:hidden резервирует место для элемента, display:none - нет;

Если вам не нужно резервировать пространстводля этого предлагаю использовать:

        $('#text').click(function() {
            $('#2').toggle();
        });  

код: http://jsfiddle.net/2v4aJ/6/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...