Методы выбора 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).