2016-02-26 81 views
0

中不起作用我在我的网页上有两个选项卡:付款和语句。 我使用以下代码在我重新加载相同页面时自动切换到选定选项卡。重新加载所选标签在IE

$('#advancedSearchTabs a').click(function(e) { 
     e.preventDefault(); 
     $(this).tab('show'); 
    }); 

    // store the currently selected tab 
    $("ul.nav-tabs > li > a").on("shown.bs.tab", function(e) { 
     var id = $(e.target).attr("href").substr(1); 
     window.location.hash = id; 
    }); 

    // on load of the page, switch to the currently selected tab 
    var hash = window.location.hash; 
    $('#advancedSearchTabs a[href="' + hash + '"]').tab('show'); 

这个工作在每一个浏览器,除了IE 11.我总是跳回到第一个标签。我怎样才能使这项工作在Internet Explorer中

回答

0

请确保您正在为IE正确获取事件目标。

$("ul.nav-tabs > li > a").on("shown.bs.tab", function(e) { 
    var target = e.target || e.srcElement; //srcElement for IE 
    var id = target.getAttribute("href"); //No need for jQuery here 
    history.pushState('','',id); //Try pushState 
}); 

var hash = (location.href.split("#")[1] || ""); //Crossbrowser compatible 
$('#advancedSearchTabs a[href$="' + hash + '"]').tab('show'); //Add $ to href attribute ends with "hash" 

JavaScript event.target and event.srcElement

+0

我加入你的额外的代码行,但没有奏效。 – Lumpi

+0

如果在新行之后使用'console.log(target)',控制台中有什么? – alexP

+0