HTML-код для выпадающих меню:
<ul>
<li class="dropDownLink">
Locality
<ul class="dropDown">
<li class="dropDown-row"><input tpye="text"></li>
</ul>
</li>
<li class="dropDownLink">
Locality
<ul class="dropDown">
<li class="dropDown-row"><input tpye="checkbox"> Option 1</li>
<li class="dropDown-row"><input tpye="checkbox"> Option 2</li>
<li class="dropDown-row"><input tpye="checkbox"> Option 3</li>
</ul>
</li>
</ul>
Код jquery для отображения раскрывающегося списка:
$('.dropDownLink').on('click', function () {
$('.dropDown').hide();
$(this).children($('.dropDown')).show();
});
jQuery, чтобы скрыть раскрывающиеся списки при нажатии вне раскрывающегося списка:
$(document).on('click', function (e) {
if(!$('.dropDownLink').is(e.target) && !$('.dropDown').is(e.target)) {
$('.dropDown').hide();
}
});
При нажатии на документ, отличный от раскрывающегося списка, он работает нормально, но при нажатии на содержимое внутри раскрывающегося списка скрывается родительский раскрывающийся список. В раскрывающемся списке также есть некоторое содержимое формы, например текстовое поле ввода, флажки и ссылки. Выпадающий список не должен скрывать нажатие на эти элементы внутри выпадающего списка.
Пожалуйста, помогите мне с этим. Заранее спасибо.
$('*')
вместо$(document)
. Затем я создал строку элементов DOM, связанных с меню навигации, чтобы исключить привязку к функцииon('click')
. Я надеюсь, что это приведет вас туда. Да благословит тебя Бог. - person Alexander Dixon   schedule 02.08.2015