在不同版本的IE8中,JQuery UI选项卡无法正确映射到内容div

时间:2013-03-04 16:13:17

标签: javascript jquery jquery-ui

我有一个网页,我也添加了JQuery UI标签。 HTML代码由第三方生成,我无法控制,但它主要是JQuery期望的。在我的机器上查看页面时,它正常工作,但客户端机器在顶部呈现选项卡,但所有选项卡内容在第一个选项卡下一个接一个地列出。所以它找到了标签但不是内容Div。我在chrome中试过它,标签工作正常。

工作:IE 8.0.6001.19393打破:IE 8.0.7601.17514

这两个影响浏览器内容标签的浏览器版本有何不同?升级浏览器不是一个选项,因为它是在公司级别设置的。

更新: 如前所述,我不得不对set html进行操作,这需要在可以呈现选项卡之前进行一些调整。主要是标签链接上的href开始不正确指向隐藏的锚点,即href =“#profile1”,它们应该是href =“#profile_1”。

我在调用标签之前使用此代码重置网址:

    var i = 1;
    $('#ProfileTOC ul li a').each(function () {
        $('#profile' + i).remove();
        $(this).attr('href', '#profile_' + i);
        i++;
    });

现在查看Jquery代码,到目前为止我发现的唯一区别是创建选项卡时它调用“islocal”,它在工作浏览器上返回true,在损坏的浏览器上返回false。原因是JQuery使用完整的http:// * urls作为工作选项卡锚点,而损坏的浏览器只使用#anchor url完全缺少http://。这使“islocal”返回false;我认为它的地图功能似乎做了不同的事情:

    this.anchors = this.tabs.map(function() {
            return $( "a", this )[ 0 ];
        })
        .addClass( "ui-tabs-anchor" )
        .attr({
            role: "presentation",
            tabIndex: -1
        });

此后一个浏览器拥有每个锚点的完整URL,而另一个浏览器具有相对的锚点。如果我删除了URL更改代码,则URL会再次成为完整路径,但显然仍然不正确。

我已经破解了JQuery UI代码以删除islocal检查并且标签工作但我想知道为什么并且可能在不破解jQuery UI代码的情况下使其工作。

1 个答案:

答案 0 :(得分:0)

我已经破解了JQuery UI代码以删除islocal检查。