jQuery - показывать только текущий ul (используя теги как клики, а не как li) - PullRequest
0 голосов
/ 29 августа 2011

Я пытаюсь показать / скрыть дочерний элемент ul's в следующей навигации.Мне удалось заставить его работать с помощью Алекси Ирттиахо.

Затем я понял, что я не закодировал элементы списка как ссылки в моем jsFiddle, и как только я сломал функцию, кто-нибудь может мне помочь снова заставить ее работать?

Это jsFiddle - правильная разметка, но с не работающей функцией

Это старая разметка (по сути, перед тегами)и вы можете видеть, что он работает

Так что единственное отличие состоит в том, что я хочу, чтобы функция запускалась по щелчку ссылки, а не по щелчку li.

Большое спасибоКрасный

Ответы [ 2 ]

1 голос
/ 29 августа 2011

попробуй

$("nav li").find("ul").hide().end().find("a")
// hide all other ul's in the nav
.click(function(e) {
    $(this).parent().siblings().find('ul').fadeOut('fast');
    $(this).parent().children('ul').delay(200).fadeToggle('fast');
});

http://jsfiddle.net/866UZ/

0 голосов
/ 29 августа 2011

В вашей разметке вы должны заключить все ли внутри nav в тег ul.Потому что li всегда должен быть внутри тега ul.И ваш селектор также nav ul li, который будет искать тег ul внутри nav, поэтому он не работал должным образом.

Посмотрите на эту рабочую демонстрацию, я исправил ее.

http://jsfiddle.net/6Dh8j/24/

...