Мне нужно, чтобы меню открывалось, когда я наводил курсор на div, когда ширина окна превышает 768 пикселей, и меню также открывалось, когда я нажимаю диапазон, когда ширина окна меньше 768 пикселей (этот диапазон скрыт над мобильным устройством). У меня продолжают возникать проблемы, когда щелчок или наведение курсора переносятся между двумя размерами экрана (0-768px и 769 и выше).
Я настроил jsfiddle с примером того, что у меня есть.
И вот jQuery, который я использую:
function subNavDropdowns(width){
if (width <= 767) {
$('span').click(function(e) {
$(this).parent().siblings().children('ul').removeClass('visible');
$(this).parent().children('ul').toggleClass('visible');
e.stopPropagation()
});
} else {
$('div').hover(function(f) {
$(this).parent().siblings().children('ul').removeClass('visible');
$(this).parent().children('ul').toggleClass('visible');
f.stopPropagation()
});
}
}
$(function () {
var onLoadWidth = $(window).width();
subNavDropdowns(onLoadWidth);
$(window).resize(function () {
var resizeWidth = $(window).width();
subNavDropdowns(resizeWidth);
});
})
Я решил эту проблему раньше (наведите курсор на рабочий стол и нажмите на мобильный), добавив функцию (e) и e.stopPropagation(), но они всегда были, когда наведение/щелчок был на одном и том же элементе. Теперь, когда я пытаюсь сделать это одним кликом для диапазона на мобильном телефоне и наведением для div на рабочем столе, у меня возникают проблемы.
$(document).ready()
, поскольку вы имеете дело с элементами, которые будут загружены в DOM. - person Carl Edwards   schedule 03.05.2016