Мне нужно сделать функцию, которая показывает меню, если пользователь нажимает на определенный div. Затем мне нужно скрыть это, если пользователь щелкнет где-нибудь на веб-сайте, кроме одного конкретного div.jQuery выбор всего, за исключением одного элемента, не работающего
Например
<div class="showMeHideMe" style="display:none;">Example</div>
<div class="showIt">Show it!</div>
А потом мой JavaScript
jQuery('.showIt').click(function(){
$('.showMeHideMe').show();
});
jQuery(document).not('.showMeHideMe').click(function(){
$('.showMeHideMe').hide();
});
Если я нажимаю на .showIt, Everyting работает нормально и .showMeHideMe показывает. Затем, если я нажимаю в любом месте страницы, скрывается .showMeHideMe. Также хорошо. Но если это показано, и я нажимаю на .showMeHideMe, он скрывается сам. Это неправильно.
Не могли бы вы рассказать мне, что я делаю неправильно?
UPDATE
Большое спасибо за очень быстрых ответов.
Я думаю, будет лучше показать его именно на странице, которую мне нужно исправить. Теперь мой код выглядит следующим образом:
<div class="search--box">
<div class="search--box-inner">
<form role="search" method="get" id ="searchform" action="">
<input class="search--box--input" name="s">
</input>
</form>
</div>
</div>
И JavaScript, который должен обработать этот
jQuery(".search--box").hide();
jQuery(".desktop-search").mouseenter(function (e) {
e.stopPropagation();
jQuery(".search--box").show();
jQuery(".search--box--input").focus();
});
jQuery(document).not('input.search--box--input').click(function (e) {
e.stopPropagation();
jQuery(".search--box").hide();
});
также вариант с: нет, вместо .Не() не работает. Тем не менее, если я нажимаю на вход, он все еще скрывается.
На самом деле, я не имею проблему, что ДИВ показывает ... показывая/скрытие идет хорошо. Но мне нужно запустить hide trigger, если я нажму на что угодно, кроме одного конкретного div. –