[英]JQuery Accordion: Open a link instead of sliding down accordion when you click a header
更新:
$('#menu1').bind('accordionchangestart', function(e, ui)
{
console.log( 'accordionchangestart event triggered' );
e.preventDefault();
});
我嘗試了上面的代碼,但確實收到了控制台消息,但是手風琴仍然滑落了。 有沒有辦法阻止手風琴在活動中滑落?
我試過return false
和e.stopImmediatePropagation()
。 它們似乎都不能阻止手風琴滑落。
以下是我的手風琴HTML:
<div id="menu1">
<div>
<h3><a href="#">Item 1</a></h3>
<div>
<a href="#">Item 1.1</a><br>
<a href="#">Item 1.2</a><br>
<a href="#">Item 1.3</a><br>
<a href="#">Item 1.4</a><br>
</div>
</div>
<div>
<h3><a href="item2.html">Item 2</a></h3>
<div></div>
</div>
<div>
<h3><a href="#">Item 3</a></h3>
<div>
<a href="#">Item 3.1</a><br>
<a href="#">Item 3.2</a><br>
<a href="#">Item 3.3</a><br>
<a href="#">Item 3.4</a><br>
</div>
</div>
</div>
我希望手風琴正常工作,除非標題鏈接不是#
。 例如, Item 2
的href是item2.html
。 在這種情況下,我希望它充當普通鏈接,然后打開頁面。
那就是你可以做的:
HTML:
<div id="menu1">
<div>
<h3><a href="#">Item 1</a></h3>
<div>
<a href="#">Item 1.1</a><br>
<a href="#">Item 1.2</a><br>
<a href="#">Item 1.3</a><br>
<a href="#">Item 1.4</a><br>
</div>
</div>
<div>
<h3><a href="item2.html">Item 2</a></h3>
<div></div>
</div>
<div>
<h3><a href="#">Item 3</a></h3>
<div>
<a href="#">Item 3.1</a><br>
<a href="#">Item 3.2</a><br>
<a href="#">Item 3.3</a><br>
<a href="#">Item 3.4</a><br>
</div>
</div>
</div>
Javscript:
$(document).ready(function(){
$("#menu1 div div").hide();
$("#menu1 div h3 a").click(function(e){
if($(this).attr("href") == "#"){
e.preventDefault();
$("#menu1 div div").slideUp();
$(this).parent().next().slideDown();
}
});
});
更改您的點擊事件,使其包含以下內容:
if ($(this).attr("href") != "#") {
window.location = $(this).attr("href");
return;
}
您能告訴我們您使用的插件嗎? 還是自制的?
如果是插件,則可以去參加活動並說:如果href與#不同,則轉到鏈接。
例如
$('h3').click(function(){
if($(this).attr('href') != '#'){ return true; }
});
或類似的東西。 沒有javascript腳本很難說。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.