У меня есть div с этим классом:
.news{
width:710px;
float:left;
border-bottom:1px #000000 solid;
font-weight:bold;
display:none;
}
И я бы хотел, чтобы некоторые методы jQuery удалили этот display: none; (так будет отображаться div), а затем добавить его снова (так что div будет затенять).
Как мне это сделать? ура
$(".news").show()
? "так что div будет тенью" ... вы имеете в виду, что он исчезнет ??$(".news").show()
работает! То же самое$(".news").hide()
!!! Спасибо;)$('.news').toggle();
Ответы:
Чтобы скрыть
div
или
и показать
div
:или
источник
jQuery предоставляет вам:
Затем вы можете легко показать и скрыть элемент (ы).
источник
.show()
он не удаляетdisplay: none
, а вместо этого помещаетdisplay: block
или вinline
зависимости от элемента, и это может нарушить макет, если элемент использует необычныйdisplay
стиль.element{display:none;}
в своем css, но одновременно используйте иelement.hide()
в js . Это позволитshow()
функции работать.Итак, позвольте мне привести пример кода:
Ссылка будет триггером для отображения div при нажатии. Итак, ваш Javascript будет:
Почти всегда лучше позволить jQuery обрабатывать стили для скрытия и отображения элементов.
Изменить: я вижу, что люди выше рекомендуют использовать
.show
и.hide
для этого..toggle
позволяет делать и то, и другое с одним эффектом. Так что это круто.источник
toggle
функцию. Много раз, если вам нужно щелкнуть что-то и показать это, вы бы хотели, чтобы функция также скрывала это.В JavaScript:
В jQuery:
источник
Используйте переключатель, чтобы показать и скрыть.
Проверьте рабочий пример на http://jsfiddle.net/jNqTa/
источник
.toggle()
это устарело с jQuery 1.9.Я бы предложил добавить класс для отображения / скрытия элементов:
а затем используйте jquery .toggleClass (), чтобы показать / скрыть элемент:
источник
Единственный способ удалить встроенный "display: none" через css-api jQuery - сбросить его с помощью пустой строки (
null
кстати, НЕ работает !!).Согласно документу jQuery, это общий способ «удалить» однажды установленное свойство встроенного стиля.
$("#mydiv").css("display","");
или
$("#mydiv").css({display:""});
должен работать правильно.
IMHO в jQuery отсутствует метод, который можно было бы назвать «показать» или «показать», который вместо того, чтобы просто установить другое свойство встроенного стиля, правильно сбрасывает отображаемое значение, как описано выше. Или, может быть,
hide()
следует сохранить начальное встроенное значение иshow()
восстановить его ...источник
Функции jQuery .show () и .hide (), вероятно, являются вашим лучшим выбором.
источник
Вы не даете нам много информации, но в целом это может быть решением:
источник
$(".news").show()
и$(".news").hide()
;)По какой-то причине у меня не работало переключение, и я получил сообщение об ошибке
uncaught type error toggle is not a function
при проверке элемента в браузере. Итак, я использовал следующий код, и он начал работать для меня.Используемый файл сценария jquery
jquery-2.1.3.min.js
.источник
Если у вас есть много элементов, которые вы хотели бы использовать
.hide()
или.show()
, вы потратите много ресурсов, чтобы сделать то, что хотите, даже если вы используете.hide(0)
или.show(0)
- параметр 0 - это продолжительность анимации.В отличие от Prototype.js
.hide()
и.show()
методов, которые используются только для управления атрибутом отображения элемента, реализация jQuery более сложна и не рекомендуется для большого количества элементов.В этом случае вам, вероятно, следует попытаться
.css('display','none')
скрыть и.css('display','')
показать.css('display','block')
следует избегать, особенно если вы работаете со встроенными элементами, строками таблицы (фактически любыми элементами таблицы) и т. д.источник
Учитывая комментарий lolesque для лучшего ответа, вы можете добавить либо атрибут, либо класс для отображения / скрытия элементов со свойствами отображения, которые отличаются от того, что у него обычно есть, если вашему сайту требуется обратная совместимость, я бы предложил создать класс и добавить / удалить его, чтобы показать / отобразить элемент
Замените встроенный блок на предпочитаемый вами метод отображения и используйте jquerys addclass https://api.jquery.com/addclass/ и removeclass https://api.jquery.com/removeclass/ вместо show / hide, если в обратном направлении совместимость не проблема, вы можете использовать такие атрибуты.
И используйте jquerys attr () http://api.jquery.com/attr/, чтобы показать и скрыть элемент.
Какой бы метод вы ни предпочли, он позволяет легко реализовать анимацию css3 при отображении / скрытии элементов таким образом.
источник
Использование
show()
добавокdisplay:block
вместоdisplay:hide
них может привести к поломке.Чтобы этого избежать, вы можете создать класс со свойством
display:none
и переключать этот класс для этого элемента с помощьюtoggleClass()
.Ни в одном из ответов об этом не сказано.
источник