20

想象一个包含 3 个部分的Bootstrap 崩溃

<div class="panel-group" id="accordion">
    ...
    <div id="accordionOne" class="panel-heading"></div>
    ...
    <div id="accordionTwo" class="panel-heading"></div>
    ...
    <div id="accordionThree" class="panel-heading"></div>
</div>

有没有一种简单的方法可以让插件打开给定的HTTP 片段标识符

示例http://myproject/url#accordionTwo将打开第二个手风琴

4

4 回答 4

36
$("#accordionTwo").collapse('show');

要打开给定的 HTTP 片段标识符,请尝试以下操作:

$(document).ready(function() {
    var anchor = window.location.hash;
    $(".collapse").collapse('hide');
    $(anchor).collapse('show');
});

编辑:

正如 bart 在评论中指出的那样:小心定位.collapse,因为当视口为xs.

于 2012-11-16T08:20:29.577 回答
8

此行将打开正确的哈希

location.hash && $(location.hash + '.collapse').collapse('show');
于 2013-01-13T23:58:27.240 回答
5

另一个解决方案,更小更紧凑:

$(document).ready(function() {
  var anchor = window.location.hash;
  $(anchor).collapse('toggle');
});
于 2015-01-14T10:56:44.977 回答
2

为了真正简单快速地实现哈希路由,您可以尝试类似Routie

routie({
    accordionOne: function() {
        $('#accordionOne').collapse('show');
    },
    accordionTwo: function() {
        $('#accordionTwo').collapse('show');
    },
    accordionThree: function() {
        $('#accordionThree').collapse('show');
    }
});
于 2012-11-16T08:39:05.553 回答