Методы выбора jquery

Мне нравится использовать методы hide() и show(), но я сталкивался с чьими-то сценариями, где они никогда не используют его.
Вместо этого я вижу, что они используют attr() для всего, что связано с отображением.

$("#element").attr("style", "visibility:hidden");
$("#element").attr("style", "visibility:visible");

Это просто чисто преференциальный?
Или выгоднее использовать одно против другого?

3 ответа

Решение

Есть разница. принимать .hide() например:

Это примерно эквивалентно звонку .css('display', 'none'), (...)

visibility а также display два разных свойства CSS. С помощью visibility: hidden; оставляет место для элемента в макете, но не отображает его.

Другое (незначительное) отличие заключается в том, что .attr("style", '...') переопределит все другие стили, которые могут быть установлены для элемента.

Hide() и show() эффективно удаляют элемент из исходного HTML.

Правила видимости влияют только на то, можете ли вы видеть содержимое элементов; пространство, которое они занимают, все еще зарезервировано и становится пустым местом.

Есть различия наверняка. Методы show () и hide () позволяют вам использовать анимацию, если вы хотите, установив продолжительность показа или скрытия. Кроме того, hide будет отслеживать текущие настройки дисплея (встроенный, блокировать и т. Д.). http://api.jquery.com/hide/

Использование.css ('display', 'none') или.css ('display', 'block'), вероятно, быстрее, но обеспечивает меньшую функциональность.

Когда вы используете show()/hide() или.css () для управления отображением, предпочтение зависит от того, чего вы пытаетесь достичь.

Еще одна заметка. TheDramaLama говорит, что hide () удаляет элемент из исходного кода. Я думаю, что TheDramaLama имел в виду, что он удаляет его позиционно, но он все еще остается в исходном коде (он же DOM).

Другие вопросы по тегам