【问题标题】:Error in jQuery UI Tabs: Mismatching fragment identifier.jQuery UI 选项卡中的错误:片段标识符不匹配。
【发布时间】:2013-02-15 20:51:47
【问题描述】:

这是我的代码:

<div id="tablesTabs">
        <ul>
            <li><a id="changed" href="#changedTable"><% "Changed" %></a></li>
            <li><a id="unchanged" href="#changedTable"><% "Unchanged"%></a></li>
        </ul>
    </div>

<div id="tablesDiv">
        <div id="changedTable" style="width:100%; height:430px;"></div>
    </div>

在 JavaScript 中:

$(function () {
        $("#tablesTabs").tabs({
            cache: true
        }).scrollabletab();
        loadTables();
    });

if ($('#tablesTabs').tabs("option", "selected") == 0) {
    //fill table with data
}

if ($('#tablesTabs').tabs("option", "selected") == 1) {
    //fill table with other data
}

第一个选项卡看起来不错,网格没问题。但是当我单击第二个选项卡时,我收到错误 Uncaught jQuery UI Tabs: Mismatching fragment identifier。是什么问题以及如何解决?

【问题讨论】:

    标签: javascript jquery jquery-ui tabs


    【解决方案1】:

    我的情况是标签外的标签内容,根据官方JQuery示例https://jqueryui.com/tabs/

    <!-- error  -->
    
    <div id="tabs">
      <ul>
        <li><a href="#tabs-1">Nunc tincidunt</a></li>
        <li><a href="#tabs-2">Proin dolor</a></li>
        <li><a href="#tabs-3">Aenean lacinia</a></li>
      </ul>
    </div>
    
      <div id="tabs-1">
        <p>abc.</p>
      </div>
      <div id="tabs-2">
        <p>def.</p>
      </div>
      <div id="tabs-3">
        <p>ghi.</p>
      </div>
    
    <!-- correct -->
    <div id="tabs">
      <ul>
        <li><a href="#tabs-1">Nunc tincidunt</a></li>
        <li><a href="#tabs-2">Proin dolor</a></li>
        <li><a href="#tabs-3">Aenean lacinia</a></li>
      </ul>
      <div id="tabs-1">
        <p>abc.</p>
      </div>
      <div id="tabs-2">
        <p>def.</p>
      </div>
      <div id="tabs-3">
        <p>ghi.</p>
      </div>
    </div>
    

    【讨论】:

    • 这适用于我从旧的 jQuery UI 升级到 1.12.1 时。上面的错误情况在升级之前有效,但在升级后失败。
    【解决方案2】:

    标签的href应该有#符号,标签内容的id不能有#。

    【讨论】:

    • 谢谢你,这条评论对我有帮助!
    【解决方案3】:

    首先, 我会看看问题是否在于您的两个选项卡在其 href 属性中具有相同的链接。两者都有#changedTable,尝试为每个标签设置唯一的href。

    其次, 你的标签设置对我来说看起来很陌生。也许没关系,但我总是在选项卡 div 中包含内容 div。

    作为:

    <div id="tabs">
      <ul>
        <li><a href="#tab-1">Something</a></li>
        <li><a href="#tab-2">Something else</a></li>
      </ul>
    
      <div id="tab-1">
        <p>Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla.</p>
      </div>
      <div id="tab-2">
        <p>Curabitur ornare consequat nunc. Aenean vel metus.</p>
      </div>
    </div>
    

    【讨论】:

    • 是否有可能将标签内容放在标签 div 之外?
    • @Daniel - 我不确定,你试过吗?由于它是 id 范围的,因此应该没有任何问题,但选项卡 div 可能很好地定义了范围。试一试就会发现。
    • 可以,但似乎会抛出错误。内容仍然会正确切换,但是是的。我将我的内容 div 移动到选项卡 div 中,我的代码不再抛出错误。也可能是因为我结合了 Bootstrap 中的一些 JS 项目导致冲突,但只是将它们移动到选项卡 div 中就消除了它,所以在这一点上我并不在乎。
    • 在标签 div 中移动内容 div 对我有用。非常感谢!
    猜你喜欢
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    相关资源
    最近更新 更多