Я хотел бы знать, является ли это правильным способом скрытия видимых элементов при нажатии в любом месте страницы.
$(document).click(function (event) {
$('#myDIV:visible').hide();
});
Элемент (div, span и т. Д.) Не должен исчезать, когда событие щелчка происходит в границах элемента.
jquery
events
event-bubbling
Франек
источник
источник
.myDiv
element. Например, если у вас есть раскрывающийся список выбора внутри.myDiv
. Когда вы щелкаете по выбору, он будет думать, что вы нажимаете вне поля.Попробуй это
Я использую имя класса вместо идентификатора , потому что в asp.net вам нужно беспокоиться о дополнительных вещах. Net прикрепляется к идентификатору
РЕДАКТИРОВАТЬ - Поскольку вы добавили еще один кусок, он будет работать следующим образом:
источник
Начиная с jQuery 1.7 появился новый способ обработки событий. Я подумал, что отвечу здесь, просто чтобы продемонстрировать, как я могу сделать это «новым» способом. Если нет, я рекомендую вам прочитать документацию jQuery для метода «on» .
Здесь мы злоупотребляем селекторами jQuery и всплыванием событий. Обратите внимание, что после этого я обязательно очищаю обработчик событий. Вы можете автоматизировать это поведение с помощью
$('.container').one
( см. Документацию ), но поскольку нам нужно выполнять условные выражения внутри обработчика, это здесь неприменимо.источник
Мне кажется, что следующий пример кода работает лучше всего. Хотя вы можете использовать return false, который останавливает всю обработку этого события для div или любого из его дочерних элементов. Если вы хотите иметь элементы управления во всплывающем div (например, всплывающую форму входа в систему), вам необходимо использовать event.stopPropogation ().
источник
Спасибо, Томас. Я новичок в JS, и я безумно искал решение своей проблемы. Ваш помог.
Я использовал jquery для создания скользящего вниз окна входа. Для лучшего взаимодействия с пользователем я решил, что окно исчезает, когда пользователь щелкает где-нибудь, кроме окна. Я немного смущен тем, что потратил около четырех часов, чтобы исправить это. Но эй, я новичок в JS.
Может быть, мой код может кому-то помочь:
источник
Вы также можете:
Если ваша цель не является div, скройте div, убедившись, что его длина равна нулю.
источник
Я сделал следующее. Мысль о том, чтобы поделиться, чтобы кто-то другой тоже мог получить пользу.
Дайте мне знать, если я могу помочь кому-нибудь в этом.
источник
div#newButtonDiv
не щелкнуть. Я бы порекомендовал вам удалить второй.click()
в строке 4 (если вы это сделаете, не забудьте удалить закрывающие фигурные скобки, круглые скобки и точку с запятой в строке 9).Попробуй это:
источник
Другой способ скрыть контейнер div, когда щелчок происходит в не дочернем элементе;
источник
Здесь #suggest_input in - это имя текстового поля, а .suggest_container - это имя класса ul, а .suggest_div - основной элемент div для моего автоматического предложения.
этот код предназначен для скрытия элементов div путем щелчка в любом месте экрана. Прежде чем что-то делать, пожалуйста, поймите код и скопируйте его ...
источник
Попробуй, у меня он работает идеально.
источник
но вы также должны помнить об этом. http://css-tricks.com/dangers-stopping-event-propagation/
источник
Вот рабочее решение CSS / small JS, основанное на ответе Sandeep Pal:
Попробуйте, установив флажок, а затем вне меню:
https://jsfiddle.net/qo90txr8/
источник
Это не работает - он скрывает .myDIV, когда вы щелкаете внутри него.
источник
Всего два небольших улучшения к приведенным выше предложениям:
остановить распространение события, вызвавшего это, при условии, что это щелчок
источник
источник
источник
Это сделано из других решений выше.
источник
источник
Простое решение: скрыть элемент в событии щелчка в любом месте за пределами определенного элемента.
источник