您好,我有一个页面呈现来自AJAX请求的大量令牌。这是呈现内容的方法:
function renderTextView(documentId, manuscriptId) {
$("#textView").empty();
$(".token-display a").die();
$.each(window.g_cacheAllTokens, function(idx, token) {
var html = renderToken(token, documentId, manuscriptId);
$("#textView").append( html );
});
$(".token-display a").live('click', function() {
var url = $(this).attr('href');
$.fn.colorbox({
opacity: 0.25,
href: url,
open: true,
onClosed: function() {
reloadViews(documentId, manuscriptId);
}
}); // colorbox
return false;
});
// enable tooltips for tokens
if( true == getEditorOption('showTooltips') ) {
$(".token-display").tooltip();
}
} // renderTextView
对于每个呈现的令牌,我都设置了一个实时处理程序,该处理程序会在“单击”时打开一个颜色框。在Chrome浏览器中似乎运行良好,但在Firefox中。打开颜色框然后将其关闭后,第二次打开它(屏幕上的相同标记或任何其他标记)时,它两次请求目标URL,如果我执行了三次,那么它将执行三次请求等等。
如您所见,当颜色框关闭时,我重新加载了视图,因此获得了新的令牌并刷新了处理程序。
这使我的应用程序在短时间使用后无法使用,因此这是一个非常糟糕的问题。
我不知道它可能是什么,甚至不知道如何调试它。
最佳答案
我还注意到,如果在Colorbox中显示的页面还包含Colorbox的JavaScript,则会发生这种情况。至少那是我的问题。您在Colorbox中加载的任何页面都不得包含重复的JavaScript。
希望这可以帮助遇到与我类似问题的人。