2013-05-10 47 views
0

我使用的是这里找到的奇特的FAQ代码(底部的“优雅”版本是精确的); http://davidwalsh.name/jquery-slidersjquery处理多个页面的锚链接

我想要做的是为我的每个常见问题解答问题创建锚点,并使用这些锚点在电子邮件中提供适当问题的链接。另外,我希望显示/隐藏jquery代码能够识别传入请求是否针对特定问题,并使用slidetoggle()显示匹配答案。

我陷入困境,试图弄清楚FAQ页面的jQuery代码如何解析用于加载页面的href和关联的锚定值。任何指针在正确的方向将不胜感激。

基本HTML示例;

<h3>This is question 1?</h3> 
<div> 
    <p>This is the answer to question #1. Pellentesque habitant morbi....</p> 
</div> 
<h3>This is question 2?</h3> 
<div> 
    <p>This is the answer to question #2. Pellentesque habitant morbi....</p> 
</div> 
<!-- more... --> 

而且Jquery的

$(document).ready(function() { 
    $('#faqs h3').each(function() { 
     var tis = $(this), state = false, answer = tis.next('div').hide().css('height','auto').slideUp(); 
     tis.click(function() { 
      state = !state; 
      answer.slideToggle(state); 
      tis.toggleClass('active',state); 
     }); 
    }); 
}); 
+0

尝试重新措辞你的问题,我很难明白你想要什么。 – djowinz 2013-05-10 21:10:15

+0

我想通过电子邮件提供一个链接到我的常见问题页面这样的事情; http:\\ mysite \ FAQ.html#QUESTION1 在我的FAQ页面上,我希望页面加载到QUESTION1的锚点,我希望处理slidetoggle的jquery代码正确显示question1的答案。目前,slidetoggle仅适用于加载FAQ页面的问题点击。那有意义吗? – Rob 2013-05-10 21:15:36

回答

2

location.hash属性包含的哈希值。你可以阅读更多关于它herehere。一旦你有这个价值,它应该是相当简单的slideToggle()相应的FAQ。

+0

好的!我认为这是我需要指出的正确方向。我将在我工作后更新。谢谢。 – Rob 2013-05-10 21:35:29

+0

我不知道我在做什么错,但我似乎无法获得散列值。如果我运行这个; 'if(window.location.hash){console.log(“FOUND HASH”); } else { \t \t console.log(“HASH NOT FOUND”); }' 我总是得到else子句。但是,如果直接查看DOM值,我可以清楚地看到URL中的散列值。我是玉米融合的。 – Rob 2013-05-10 23:52:35

+0

这个答案解决了我原来的问题。现在我遇到了麻烦,并要求后续[这里](http://stackoverflow.com/questions/16494058/jquery-not-returning-url-hash)。 – Rob 2013-05-11 05:28:06