Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用location.hash打开引导面板/选项卡_Javascript_Jquery_Html_Twitter Bootstrap - Fatal编程技术网

Javascript 如何使用location.hash打开引导面板/选项卡

Javascript 如何使用location.hash打开引导面板/选项卡,javascript,jquery,html,twitter-bootstrap,Javascript,Jquery,Html,Twitter Bootstrap,我正在尝试链接到bootstrap 3手风琴的特定面板。链接将位于导航菜单中,因此有时链接将与手风琴位于同一页面上,有时链接将位于不同页面上。我举了一个例子,当链接位于不同的页面上时,它是有效的,但如果您位于同一页面上,它就不起作用。在这两种情况下我都需要它 以下是我正在使用的代码: jQuery(document).ready(function($) { // open panel when linked from an external link (this works)

我正在尝试链接到bootstrap 3手风琴的特定面板。链接将位于导航菜单中,因此有时链接将与手风琴位于同一页面上,有时链接将位于不同页面上。我举了一个例子,当链接位于不同的页面上时,它是有效的,但如果您位于同一页面上,它就不起作用。在这两种情况下我都需要它

以下是我正在使用的代码:

jQuery(document).ready(function($) {

 // open panel when linked from an external link (this works)
       location.hash && $(location.hash + '.collapse').collapse('show');  

 // open panel when link is on the same page (incorrectly requires double click) 
        $(".nav-left a").on("click", function() {
            location.hash && $(location.hash + '.collapse').collapse('show');
        });

}); 
下面是一个演示,演示如何从外部链接打开正确的面板:

(如果此URL不起作用,您可能需要将其复制并粘贴到浏览器中。)

但是,如果您在页面上尝试使用这些链接,则必须双击它们才能打开相应的面板

以下是使用我的代码完整引导的链接:


谢谢你的帮助

链接的
单击
处理程序在浏览器跟随链接之前执行,因此处理程序函数仍将看到旧的
位置。哈希

为了避免这种情况,你可以

  • 对窗口的
    hashchange
    事件做出反应(其优点是,当用户使用前进/后退按钮时,它甚至可以工作)或
  • 从链接的哈希值而不是位置的哈希值确定要打开的节

您可能需要使用窗口的
hashchange
事件来决定要展开手风琴的哪个部分。还有jQuery插件,例如和。谢谢。你知道如何使用链接的散列来打开分区吗?我尝试了一些不起作用的变体$('.nav左a[href=“#'+'.collapse'+'”).collapse('show');和$(this.hash).collapse('show');例如,@Lindsay只需在“从同一页面链接时打开面板”部分中的单击处理程序中将
location.hash
替换为
this.hash
。由于处理程序绑定到所有匹配的
标记,
将引用已单击的链接。但是,正如我所说,您可以通过使用
window.onhashchange
(可能除了单击处理程序之外)来正确处理前进/后退按钮,从而帮助您的用户。谢谢。成功了。不知道我为什么要把它复杂化!