我有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,这意味着它已成功连接。
但是当我关闭弹出窗口并重新打开它时,它会向我显示两次消息......我假设代码执行了两次,因为它没有卸载。
您可以通过以下两种不同的方式实现
- 在 Iframe 中打开弹出窗口,并在关闭弹出窗口时销毁 Iframe
- 如果您没有使用 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
}
}