簡體   English   中英

JQuery手風琴:單擊標題時,打開鏈接而不是向下滑動手風琴

[英]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 falsee.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();
        }
    });
});

jsfiddle

更改您的點擊事件,使其包含以下內容:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM