我正在使用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(),以便在初始加载后加载的链接也被覆盖。
现在,想象一下你有两个标签的情况。首先,用户在tab_a中,其中包含链接。用户单击tab_a中的链接,它打开正常。然后,选择tab_b,然后选择tab_a,再次选择链接。
这样:tab_a - >链接 - > tab_b - > tab_a - >链接
现在,第二次选择tab_a后,以及之后的链接,单击链接时会收到两个请求。如果我重复这个过程,一旦我点击tab_a中的链接,我将收到三个请求,依此类推。
我无法理解这里发生的事情。
.targetBlank类用于不打算在选项卡中打开的链接。它并不是特别相关,但我认为我也会分享它,如果它在某种程度上证明是重要的。
答案 0 :(得分:1)
如果内容已被绑定,则需要设置标记,或者在标签更改时取消绑定内容。
像ui.panel.find('a').unbind()
这样的东西应该可以解决问题。确保将其放在标签更改回调中。