2015-05-31 2 views
5

my page (pass = "shooga1"), нажатие на COLLECTIONS (левая боковая панель) отображает подменю, содержащее один элемент под названием «COLLECTION # 1». При нажатии на эти элементы отображается еще одно подменю, чьи элементы по какой-либо причине не могут быть нажаты. Почему нет?Проблема распространения с подменю

Вот мой код:

$('li.item_collection').toggle(function() { 
    $('li.item_collection > .sub-menu').slideDown({ duration: 200, easing: 'easeInOutExpo' }); 
}, function() { 
    $('li.item_collection > .sub-menu').slideUp(100); 
}); 
$('li.item_collection > .sub-menu').click(function(e) { 
    e.stopPropagation(); 
}); 

$('li.item_collection > .sub-menu > li').toggle(function() { 
    $(this).children('ul').slideDown({ duration: 200, easing: 'easeInOutExpo' }); 
}, function() { 
    $(this).children('ul').slideUp(100); 
}); 
$('li.item_collection > .sub-menu > .sub-menu > li').click(function(e) { 
    e.stopPropagation(); 
}); 
+0

отлично работает на хромированном/osx –

ответ

1

Удалить e.stopPropagation(); из нижней части JQuery (один для второй коробки отбора)

4

Ваши Собачки немного неуместны ... они должны быть внутри обработчиков click. Вы можете упростить код тонну, хотя с одним обработчиком для всех и простой проверки меню ребенка:

$(".menu li a").click(function(e) { 
    e.preventDefault(); //Dont goto the link right away 

    //Check for the existence of a ul at the first index 
    var submenu = $(this).parent("li").find("ul:eq(0)"); 
    if (submenu.length) { 
     //If a child menu, toggle it 
     submenu.slideToggle(); 
    } else { 
     //No child menu, head to the link! 
     location.href = this.href; 
    } 
}); 
1

Позвони меня с ума, но у вас есть элемент. Таким образом, когда вы нажимаете на строку li, вы фактически нажимаете элемент A - один уровень под именем li, чье поведение DEFAULT должно открыть ссылку.

Вы пробовали e.preventDefault() помимо e.stopPropagation()? потому что stopPropagation (также stopImmediatePropagation) перестанет всплывать ... но у вас есть ссылка, поэтому вы также хотите остановить поведение по умолчанию.