2013-12-16 6 views
1

Я пытаюсь сделать мою навигацию выпадающим списком для «Loose Leaf Tea». Теперь он работает, но когда я нажимаю любую другую ссылку в навигации, выпадающее меню все еще падает. Может кто-то, пожалуйста, помогите мне с этим? Благодаря!jquery нажмите навигация не работает

<div id="ta-navcontainer"> 

<div class="click-nav"> 
<ul id="ta-nav"> 
<li class="gifts"><a href="/category_s/1831.htm" title="Coming Soon"><img src="http://www.teaamore.com/v/vspfiles/assets/nav-imgs/ta-gifts.png" alt="Gifts" width="26" height="32">Gifts</a> 
</li> 
<li class="edibles"> <a href="/category_s/1847.htm"><img src="http://www.teaamore.com/v/vspfiles/assets/nav-imgs/edibles.png" alt="Tea Ware" width="41" height="32">Edibles</a> 
</li> 
<li class="teaware"> <a href="/category_s/1823.htm"><img src="http://www.teaamore.com/v/vspfiles/assets/nav-imgs/ta-tea-ware.png" alt="Tea Ware" width="34" height="32">Tea Ware</a> 
</li> 
<li class="single-orgins"> <a href="/category_s/1849.htm"><img src="http://www.teaamore.com/v/vspfiles/assets/nav-imgs/single-orgin-tea.png" alt="Single Origin Tea" width="32" height="32">Single Origin Tea</a> 
</li> 
<li class="loose-leaf"> <a class="clicker"><img src="http://www.teaamore.com/v/vspfiles/assets/nav-imgs/loose-leaf-tea.png" alt="Tea Ware" width="34" height="32">Loose Leaf Tea</a> 
    <ul class="no-js"> 
     <li class="black-tea"><a href="http://www.teaamore.com/category_s/1822.htm" id="current">Black</a> 
     </li> 
     <li class="chai-tea"><a href="http://www.teaamore.com/category_s/1827.htm">Chai</a> 
     </li> 
     <li class="pu-era-tea"><a href="http://www.teaamore.com/category_s/1838.htm">Pu-erh</a> 
     </li> 
     <li class="oolong-tea"><a href="http://www.teaamore.com/category_s/1829.htm">Oolong</a> 
     </li> 
     <li class="green-tea"><a href="http://www.teaamore.com/category_s/1825.htm">Green</a> 
     </li> 
     <li class="white-tea"><a href="http://www.teaamore.com/category_s/1826.htm">White</a> 
     </li> 
     <li class="rooibos-tea"><a href="http://www.teaamore.com/category_s/1828.htm">Rooibos</a> 
     </li> 
     <li class="tisanes-tea"><a href="http://www.teaamore.com/category_s/1839.htm">Tisanes</a> 
     </li> 
     <li class="yerba-mate-tea"><a href="http://www.teaamore.com/category_s/1843.htm">Yerba Mate</a> 
     </li> 
     <li class="wellness-tea"><a href="http://www.teaamore.com/category_s/1845.htm">Wellness</a> 
     </li> 
     <li class="iced-tea"><a href="http://www.teaamore.com/category_s/1841.htm">Iced Tea</a> 
     </li> 
    </ul> 
</li> 
<li class="sachet-bag"> <a href="/category_s/1848.htm" title="Coming Soon"><img src="http://www.teaamore.com/v/vspfiles/assets/nav-imgs/tea-bag-sachet.png" alt="Sachet Tea" width="32" height="32">Sachet Tea</a> 
</li> 
</ul> 

<script> 

$(function() { 
$('.click-nav > ul').toggleClass('no-js js'); 
$('.click-nav .js ul').hide(); 
$('.click-nav .js').click(function(e) { 
    $('.click-nav .js ul').slideToggle(200); 
    //$('.clicker').toggleClass('active'); 
    e.stopPropagation(); 
}); 
$(document).click(function() { 
    if ($('.click-nav .js ul').is(':visible')) { 
     $('.click-nav .js ul', this).slideUp(); 
     $('.clicker').removeClass('active'); 
    } 

    }); 

}); 

</script> 
+0

Вы должны использовать 'this' в вашем объявлении элемента JQuery. Если вы сотворите скрипку, я покажу вам. – Vector

ответ

0

Попробуйте и комментировать ваш $(document).click(function() { блок

$('.click-nav > ul').toggleClass('no-js js'); 
$('.click-nav .js ul').hide(); 
$('.click-nav li').click(function(e) { 
    $(this).find('ul').slideToggle(200); 
    e.stopPropagation(); 
}); 

или вы хотите что-то другое?

+0

Это сработало с моим текущим кодом! Спасибо! :-) – William

0

Как насчет чего-то простого?

$(function() { 
    $('.click-nav .no-js').hide(); 

    $('.clicker').click(function() { 
     ($('.no-js').toggle()) 

    }); 
}); 

Вот jfiddle пример: http://jsfiddle.net/c3sQr/

+0

Спасибо, это сработало. – William

0

This works и гораздо проще, короче и менее хрупкими:

$(function() { 
    var onClickLink = function(event) { 
    $li = $(event.target).closest('li'); 

    if ($li.hasClass('loose-leaf')) { 
     $li.find('ul').slideToggle(200); 
     return false; 
    } 

    $('#ta-nav').slideUp(); 
    return true; 
    }; 

    $('ul#ta-nav > li.loose-leaf > ul').hide(); 
    $('ul#ta-nav > li').on('click', onClickLink); 
}); 

Я также добавил немного CSS, чтобы сделать чай ссылку с отрывными листами выделяться; мы должны действительно положить стрелку вниз рядом с ним, и он подчеркнул, как хорошо :) Это выглядит следующим образом:

cursor : pointer; color : green 
Смежные вопросы