重新加载选定的选项卡在IE中不起作用

时间:2016-02-26 11:02:33

标签: javascript jquery internet-explorer-11

我的网页上有两个标签:付款和语句。 当我重新加载同一页面时,我使用以下代码自动切换到选定的选项卡。

$('#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');

这适用于除Internet Explorer 11之外的所有浏览器。我总是跳回到第一个选项卡。如何在Internet Explorer中完成此工作

1 个答案:

答案 0 :(得分: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