页面加载时的切换元素,哈希链接不起作用

时间:2016-01-13 01:50:52

标签: jquery html url slidetoggle fragment-identifier

我是javascript的新手,并在按钮上使用jQuery切换效果来打开和关闭以下div。这是我的HTML:

<article id="book-section">
<h3>The new collection</h3>
<a class="btn" href="#book-list-one">Book list</a>
<div>
<ul>
   <li>Book one</li>
   <li>Book two</li>
   <li>Book three</li>
   <li>Book four</li>
</ul>
</div>
</article>

这是我的javascript

$(document).ready(function() {
$(".btn").click(toggle);
function toggle() {
    {
        $(this).toggleClass("open").next().slideToggle();
        return false;
    };

    $("a[href='" + window.location.hash + "']").parent(".btn").click();
}
});

当用户输入index.html#book-list-one时,它应该打开包含图书清单的div,但它没有。切换效果很好。我无法弄清问题是什么。任何帮助,将不胜感激!!! 提前谢谢!

更新:这是JSfiddle

1 个答案:

答案 0 :(得分:0)

您在功能上错误地设置了右括号:

$(document).ready(function() {

  $(".btn").click(toggle);

  function toggle() { 
    $(this).toggleClass("open").next().slideToggle();
    return false;
  }

  // and seems like the a tag in html snippet posted
  // doesn't have parent with the class name `.btn`,
  // $("a[href='" + window.location.hash + "']").parent(".btn").click();
  // instead try access it directly
  $("a[href='" + window.location.hash + "']").click();

});