Javascript 加载引导选项卡触发器

Javascript 加载引导选项卡触发器,javascript,jquery,twitter-bootstrap,tabs,bootstrap-tabs,Javascript,Jquery,Twitter Bootstrap,Tabs,Bootstrap Tabs,活动类不起作用,我试过body-On-load单击trigger,显然用id和许多其他方式显示tab,但似乎什么都不起作用。我已经对URL进行了哈希处理,以便在搜索中单独链接选项卡。非常感谢您的帮助 JS:散列URL并跳转到选项卡 // jump to tab if it exists if (location.hash) { $('a[href=' + location.hash + ']').tab('show'); } // add tab hash to url to p

活动类不起作用,我试过body-On-load单击trigger,显然用id和许多其他方式显示tab,但似乎什么都不起作用。我已经对URL进行了哈希处理,以便在搜索中单独链接选项卡。非常感谢您的帮助

JS:散列URL并跳转到选项卡

// jump to tab if it exists 
if (location.hash) {
  $('a[href=' + location.hash + ']').tab('show');
  }

  // add tab hash to url to persist state
  $(document.body).on("shown.bs.tab", function(e){
  location.hash = e.target.hash;
  });

});
JS:转到选项卡主页(不工作)

HTML:

<div class="col-xs-5 col-md-2 nopadding">
  <nav class="nav-sidebar">
    <ul class="nav tabs">
    <li class="lead3"><a href="#home" class="active" data-toggle="tab">Home </a></li>
   <li class="lead3"><a href="#tab1" data-toggle="tab">tab1</a></li>
   <li class="lead3"><a href="#tab3" data-toggle="tab" >tab3</a></li>                               
   <li class="lead3"><a href="#contact" data-toggle="tab"> Contact </a></li>                                                                                                                   
 </ul>
</nav>

选项卡窗格:

<div class="tab-pane active fade text-style" id="home"> . .. </div>
。。

您对这一行的期望是什么

$("home").trigger("click");
我想Jquery在这里找不到元素
$(“home”)
。您可以在控制台中对其进行评估以供检查。
如果要查找类为“home”或id为“home”的元素,则应正确使用$(“.home”)或$(“#home”)。

您对此行的期望是什么

$("home").trigger("click");
我想Jquery在这里找不到元素
$(“home”)
。您可以在控制台中对其进行评估以供检查。
如果要查找类为“home”或id为“home”的元素,则应正确使用$(“.home”)或$(“#home”)。

看起来文档就绪事件不起作用。 请尝试删除$(“文档”)周围的引号

此事件的较短方法如下所示:

$(function() {

});

您的文档就绪事件似乎不起作用。 请尝试删除$(“文档”)周围的引号

此事件的较短方法如下所示:

$(function() {

});

我知道这已经很晚了,但我想发布我的解决方案,因为这也是我一直坚持的。我认为有一个重要的微妙之处很容易被忽略。您希望触发对
的单击,以获取有关绑定到hashchange事件的更多信息

$(window).bind('hashchange', function(event){
  var hash = window.location.hash;
  // get the actual anchor tag that links to the panel
  var $matchingAnchor = $('nav a[href^="' + hash + '"');
  if ($matchingAnchor) $matchingAnchor.click();
});
假设您希望将此限制为仅触发某个页面,则可以添加位置检查:

$(window).bind('hashchange', function(event){
  var path = window.location.pathname;
  var hash = window.location.hash;
  var $matchingAnchor = $('nav a[href^="' + hash + '"');

  var contextRegex = /my\/page/;
  var correctPage = contextRegex.test(path);
  if (correctPage && $matchingAnchor) $matchingAnchor.click();
});
我猜想您还希望确保单击选项卡更新URL窗口中的哈希,以便绑定到选项卡事件:

$('nav a').on('click',function() {
  var $a = $(this);
  var hash = $a.attr("href");
  window.location.hash = hash;
});
这将进入
ready
函数的内部。您还必须确保触发单击的函数发生在页面首次加载时

完整解决方案:

$(document).ready(function() {
  // Declare clickback function
  function triggerTabClick() {
    var path = window.location.pathname;
    var hash = window.location.hash;
    var $matchingAnchor = $('nav a[href^="' + hash + '"');    

    var contextRegex = /my\/page/; // or whatever you want this to be
    var correctPage = contextRegex.test(path);
    if (correctPage && $matchingAnchor) $matchingAnchor.click();
  }    

  // Trigger it when the hash changes
  $(window).bind('hashchange', triggerTabClick);    

  // Trigger it when the page loads
  triggerTabClick();    

  // Hook into click for tabs to make sure hash is updated on click
  $('nav a').on('click',function(event){
    event.preventDefault();
    var $a = $(this);
    var hash = $a.attr("href");
    var window.location.hash = hash;
  })
})

我知道这已经很晚了,但我想发布我的解决方案,因为这也是我一直坚持的。我认为有一个重要的微妙之处很容易被忽略。您希望触发对
的单击,以获取有关绑定到hashchange事件的更多信息

$(window).bind('hashchange', function(event){
  var hash = window.location.hash;
  // get the actual anchor tag that links to the panel
  var $matchingAnchor = $('nav a[href^="' + hash + '"');
  if ($matchingAnchor) $matchingAnchor.click();
});
假设您希望将此限制为仅触发某个页面,则可以添加位置检查:

$(window).bind('hashchange', function(event){
  var path = window.location.pathname;
  var hash = window.location.hash;
  var $matchingAnchor = $('nav a[href^="' + hash + '"');

  var contextRegex = /my\/page/;
  var correctPage = contextRegex.test(path);
  if (correctPage && $matchingAnchor) $matchingAnchor.click();
});
我猜想您还希望确保单击选项卡更新URL窗口中的哈希,以便绑定到选项卡事件:

$('nav a').on('click',function() {
  var $a = $(this);
  var hash = $a.attr("href");
  window.location.hash = hash;
});
这将进入
ready
函数的内部。您还必须确保触发单击的函数发生在页面首次加载时

完整解决方案:

$(document).ready(function() {
  // Declare clickback function
  function triggerTabClick() {
    var path = window.location.pathname;
    var hash = window.location.hash;
    var $matchingAnchor = $('nav a[href^="' + hash + '"');    

    var contextRegex = /my\/page/; // or whatever you want this to be
    var correctPage = contextRegex.test(path);
    if (correctPage && $matchingAnchor) $matchingAnchor.click();
  }    

  // Trigger it when the hash changes
  $(window).bind('hashchange', triggerTabClick);    

  // Trigger it when the page loads
  triggerTabClick();    

  // Hook into click for tabs to make sure hash is updated on click
  $('nav a').on('click',function(event){
    event.preventDefault();
    var $a = $(this);
    var hash = $a.attr("href");
    var window.location.hash = hash;
  })
})


控制台中的任何错误
?控制台中没有错误。@BG101请参阅上面的更新。
控制台中的任何错误
?控制台中没有错误。@BG101请参阅上面的更新。尝试了所有错误,控制台中没有工作,也没有错误。正如我从html示例中看到的,您没有id为或类为“home”的元素,我必须将其取出并尝试其他内容。我尝试了尽可能多的变化。但是它不起作用。另外,肯定有比触发点击更好的方法来加载选项卡。当然,更好的方法是存在的。很难理解你需要哪种帮助。正如您在示例
.tab(“show”)
中所写,方法是引导文档提供的示例。Idk在这种情况下您使用的bootsrap的哪个版本检查此bootstrap 3的示例已尝试所有这些示例,均未成功,控制台中也未出现错误。正如我从您的html示例中看到的,您没有id或类为“home”的元素,我必须将其取出并尝试其他内容。我尝试了尽可能多的变化。但是它不起作用。另外,肯定有比触发点击更好的方法来加载选项卡。当然,更好的方法是存在的。很难理解你需要哪种帮助。正如您在示例
.tab(“show”)
中所写,方法是引导文档提供的示例。Idk在这种情况下,您使用的是哪个版本的bootsrap再次检查bootstrap 3的示例,肯定有比触发单击更好的方式加载选项卡吗Dagain,肯定有比点击更好的方式来加载标签吗D