Вход

Просмотр полной версии : Меню аккордеон jquery. Не работают ссылки.


melst
10.12.2015, 11:20
Здравствуйте.
Перелопатил инет и ничего не нашел.
Проблема в следующем. Есть меню аккордеон. Прописываю ссылки и они не работают , если к пункту добавлен второй уровень меню. В коде ниже работает только последняя ссылка.

код HTML:


<ul class="accordion">
<li><a href="#">бла</a>
<ul>
<li><a href="/ccnn/index.php?page_id=6">блабла</a></li>
</ul>
</li>
<li><a href="/ccnn/index.php?page_id=6">бла</a>
<ul>
<li><a href="/ccnn/index.php?page_id=6">блабла</a></li>
</ul>
</li>
<li><a href="/ccnn/index.php?page_id=6">бла</a></li>
</ul>


Скрипт


$(document).ready(function() {
$('ul.accordion li ul').css({display:"none"});
$('ul.accordion li:has("ul")').click(function() {
if ($("ul",this).css("display") == "none") {
$("ul.accordion li ul").slideUp(400);
$("ul",this).slideDown(400);
}
return false;
});
});


Если скрипт отключить и меню все становится открытым, то ссылки работают.
Надеюсь на помощь.

рони
10.12.2015, 11:40
melst,
строка 8 блокирует любые клики
<!DOCTYPE HTML>

<html>

<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">

</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function() {
$('ul.accordion li ul').hide()
.prev().click(function(event) {
event.preventDefault()
$("ul.accordion li ul").not($(this).next().slideToggle()).slideUp(400);
});
});

</script>
</head>

<body>
<ul class="accordion">
<li><a href="#">бла</a>
<ul>
<li><a href="/ccnn/index.php?page_id=6">блабла</a></li>
</ul>
</li>
<li><a href="/ccnn/index.php?page_id=6">бла</a>
<ul>
<li><a href="/ccnn/index.php?page_id=6">блабла</a></li>
</ul>
</li>
<li><a href="/ccnn/index.php?page_id=6">бла</a></li>
</ul>



</body>

</html>

melst
10.12.2015, 12:03
melst,
строка 8 блокирует любые клики
<!DOCTYPE HTML>

<html>

<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">

</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function() {
$('ul.accordion li ul').hide()
.prev().click(function(event) {
event.preventDefault()
$("ul.accordion li ul").not($(this).next().slideToggle()).slideUp(400);
});
});

</script>
</head>

<body>
<ul class="accordion">
<li><a href="#">бла</a>
<ul>
<li><a href="/ccnn/index.php?page_id=6">блабла</a></li>
</ul>
</li>
<li><a href="/ccnn/index.php?page_id=6">бла</a>
<ul>
<li><a href="/ccnn/index.php?page_id=6">блабла</a></li>
</ul>
</li>
<li><a href="/ccnn/index.php?page_id=6">бла</a></li>
</ul>



</body>

</html>

Спасибо. Вы как всегда на высоте))) Похоже какой-то диверсант это меню выложил.