您好,我有一个页面呈现来自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。

希望这可以帮助遇到与我类似问题的人。

09-12 20:12