【问题标题】:jQuery UI ajax tabs - requests multiplying when loading links within tabsjQuery UI ajax 选项卡 - 在选项卡中加载链接时请求成倍增加
【发布时间】:2011-01-03 21:14:27
【问题描述】:

我正在使用 jQuery UI 选项卡,通过 ajax 加载选项卡内容。内容可能包含我想在所选选项卡中加载的链接。为此,我使用此代码

$("#tab-div").tabs({  
    load: function(event, ui) {
    $('a:not('.targetBlank'), ui.panel).live('click', function() {
        $(ui.panel).load(this.href);
        return false;
    });
});

我使用 live() 以便在初始加载后加载的链接也被覆盖。

现在,想象一下您有 2 个标签的情况。首先,用户在 tab_a 中,其中包含链接。用户单击 tab_a 中的链接,它可以正常打开。然后,tab_b 被选中,tab_a 被选中,里面的链接再次被选中。

那就是:tab_a -> 内部链接 -> tab_b -> tab_a -> 内部链接

现在在第二次选择 tab_a 以及之后的链接之后,单击链接时我会收到两个请求。如果我重复这个过程,一旦我点击 tab_a 中的链接,我会收到三个请求,依此类推。

我不太明白这里发生了什么。

.targetBlank 类用于不打算在选项卡中打开的链接。它不是特别相关,但我想我也会分享它,如果它以某种方式被证明很重要。

【问题讨论】:

    标签: javascript jquery-ui jquery jquery-ui-tabs


    【解决方案1】:

    如果内容已经绑定,则需要设置一个标志,或者在标签更改时取消绑定内容。

    ui.panel.find('a').unbind() 这样的东西应该可以解决问题。确保将其放入选项卡更改回调中。

    【讨论】:

    • 当我使用 jquery ui 1.8.7 和 jquery 1.4.4 时会出现这个问题。当我将它与 1.4.2 一起使用时,一切都很好,请求不会成倍增加。我已经在 jquery ui ticket tracker bugs.jqueryui.com/ticket/6802 提交了一张票
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多