1
我花了不止一小時的時間閱讀api.jquery.com,並且同時嘗試自己做。手風琴菜單 - e.preventDefault。如何保持標準動作<a href="">
而我仍然不知道如何以正確的方式解決問題。
我有這個手風琴腳本:
$(document).ready(function(){
$(".menu-list > li > a").on("click", function(e){
if($(this).parent().has("ul")) {
e.preventDefault();
}
if(!$(this).hasClass("open")) {
$(".menu-list li ul").slideUp(350);
$(".menu-list li a").removeClass("open");
$(this).next("ul").slideDown(350);
$(this).addClass("open");
}
else if($(this).hasClass("open")) {
$(this).removeClass("open");
$(this).next("ul").slideUp(350);
}
});
});
和菜單看起來像這樣:
<ul class="menu-list">
<li><a href="panel.php" class="panel">Panel</a></li>
<li><a href="doesn't matter" class="articles">Articles</a>
<ul>
<li><a href="somepage.php">Some page</a></li>
<li><a href="somepage2.php">Some page 2</a></li>
<li><a href="somepage3.php">Some page 3</a></li>
</ul>
</li>
<li>.........
ofcourse becouse e.preventDefault的();點擊鏈接將不會將瀏覽器分配給頁面。 Clicked元素將展開<ul>
,包含在<li>
中。 這很好。
但無論如何,對於一些鏈接,我想保持的標準動作<a>
(爲的exaple <li><a href="panel.php" class="panel">Panel</a></li>
) 這樣他們就可以把我的頁面在href
的問題是如何做到這一點,同時保留手風琴對於其他元素的正確工作。
我到目前爲止最好的做法是刪除e.preventDefault();
並將#
插入到我想用作觸發器的鏈接中。但是,這是正確的方式?
(對不起形成我的英語,如果有任何錯誤)
感謝的人......。這真是有幫助。我不能投票,因爲我在15歲以下的聲望。這很容易omg ..但顯然我只是一個初學者 – RysQ
沒有問題。祝你工作順利! – andreivictor