卸载加载的 Javascript



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

<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. 在 Iframe 中打开弹出窗口,并在关闭弹出窗口时销毁 Iframe
  2. 如果您没有使用 Iframe,请从"弹出"模板中移动这些脚本标签,并将它们保留在"head"内或关闭正文标签上方。

注意:一旦加载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
    }
}

最新更新