2013-02-04 21 views
0

我试图下列行为添加到JQuery的手风琴:JQuery的手风琴锚功能

1)激活基于内部页面链接(#section1)手风琴的部分。这意味着如果用户转到URL mypage.com/page.php#test,我将使用JS来激活该手风琴部分。

2)将手风琴可复制链接的每个部分的标题设置为将激活手风琴的所述部分的URL。因此,如果用户右键点击手风琴的“部分标题”并复制链接位置,则会在用户的剪贴板上放置mypage.com/page.php#test


我有1)想通了,但它是我自己写的代码。我正在搞navigation:true选项,但没有任何运气。如果有人会在意我指向正确的方向,我宁愿使用作者的代码给我自己的代码,但如果没有,没有biggie,因为这是完成。

2)是我在亏损。看起来,JQuery手风琴是绑定代码来点击手风琴部分头部任何地方的事件。这似乎使它不可能给用户我想要的复制链接位置功能。

我的HTML:

<div id="accordion"> 
    <article class="std_page_content"> 
    <h3><a id="#test">Test</a></h3> 
    <div> 
     test 
    </div> 
    </article> 
    .....additional accordion sections.... 
</div> 

我的javascript:

$("#accordion").accordion({header : "h3", heightStyle : "content", /*Allows full collapse*/collapsible: true, /*collapses sections*/ active:false, navigation:true}); 

var theUrl = window.location.href; 
var hashValue = theUrl.contains("#") ? theUrl.split('#')[1] : null; 

if(hashValue != null) 
{ 
    //open the corresponding accordion section 
} 

回答

1

只要给你的锚标签href属性:

<h3><a id="#test" href="#test">Test</a></h3> 

更新:如果您想链接覆盖整个手风琴接头,您可以将<h3>标记放置在锚标记内,如下所示:http://jsfiddle.net/3tGYB/1/

<div id="accordion"> 
    <article class="std_page_content"> 
    <a id="#test" href="#test" class="header"><h3>Test</h3></a> 
    <div> 
     test 
    </div> 
    </article> 
</div> 

当然,改变你的javascript:

$("#accordion").accordion({header : "a.header" /*plus other options*/}); 
+0

我不知道我理解这一点。这只会让它链接回自己。这与“导航”选项有关吗? – thatidiotguy

+0

如果您将href属性添加到您的链接中,您将能够右键单击并复制链接地址,这是您声明的第二个目标。正如你所提到的,jQuery UI处理手风琴中的点击事件,包括阻止更新url。你可以在jsfiddle上检查它:http://jsfiddle.net/3tGYB/ –

+0

这工作正常。唯一的问题是,你必须正确的复制/粘贴标题。我将继续寻找一种解决方案,以便在您完成本节“标题”的任何部分时进行复制/粘贴。谢谢。 – thatidiotguy