卸载加载的Javascript

时间:2013-10-08 15:09:24

标签: javascript jquery ajax

我在使用ajax生成的弹出窗口(简单div)中包含2个javascript文件。

<script type="text/javascript" src="<?php echo JS ?>pm.js"></script>
<script type="text/javascript" src="<?php echo JS ?>chat.js"></script>

当您关闭弹出窗口并重新打开它时,两个文件中的jQuery绑定函数会执行两次。

例如

//connection
    $(document).bind('connect', function() {
            var conn = new Strophe.Connection('my-http-binding-url');
             conn.connect(inbox.data.jid, inbox.data.pass, function(status){
            inbox.connection = conn;
             alert(status)
            });
});

首次打开弹出窗口时,会显示警告消息:5,表示已成功连接。

但是当我关闭弹出窗口并重新打开它时,它会向我显示两次消息......我假设代码执行了两次,因为它没有被卸载。

1 个答案:

答案 0 :(得分:2)

您可以通过以下两种不同方式实现

  1. 在Iframe中打开您的弹出窗口并在关闭弹出窗口时销毁Iframe
  2. 如果您没有使用Iframe,请从“弹出”模板移动这些脚本标记,并将它们保持在“头部”或正好在关闭正文标记之上。
  3. 注意:加载后无法删除javascript。使用“Firebug”或“Chrome Developer Tool”的“网络”标签,确保多次加载javascript。

    编辑:您可以在完成ajax后访问动态HTML

    $.ajax({
       ...,
       ...,
       success: function afterAjax(){
          // Insert dynamic HTML in Document
          // Any jQuery selector/function you can use here
        }
    }