我有一个使用.load()的jquery-ui;函数检索它的内容,我需要包含两个.js文件,以使我的对话框工作。 一切都很顺利,但如果我用取消按钮关闭对话框并重新打开它,它将保留我的.js包含,因此它会加载两次。
这是我的HTML文件:
<script type="text/javascript" src="includes/js/commun.js"></script>
<script type="text/javascript" src="includes/js/altimit.js"></script>
<section style="text-align: center;">
<a id="ajouterArticle">Ajouter un article</a>
</section>
<div id="ajouterArticle" title="Ajouter un article"></div>
我的.js:
$("a#ajouterArticle").button();
$("body").on('click', 'a#ajouterArticle', function() {
$.post("includes/ajax/altimit.ajax.php", {
creerArticle: 1
},
function(result) {
$("div#ajouterArticle").hide().html(result).dialog("open");
}
);
});
$("div#ajouterArticle").dialog( {
autoOpen: false,
height: "auto",
width: "auto",
modal: true,
buttons: [
{
text: "Enregistrer",
icons: { primary: "ui-icon-disk" },
click: function() {
$.post("includes/ajax/altimit.ajax.php",
{
id: $('#id').val(),
titre: $('#titre').val(),
url: $('#url').val(),
contenu: $('#contenu').val(),
tags: $('#tags').val(),
ajouterArticle: 1
},
function(result) {
if(result == 0) {
$("form#ajouterArticle").trigger("reset");
$("div#ajouterArticle").dialog("close");
}
}
);
},
},
{
text: "Annuler",
icons: { primary: "ui-icon-trash" },
click: function() {
$(this).dialog("close");
},
}
]
});
这是我的php代码:
function creerArticle() {
echo '<script type="text/javascript" src="includes/js/commun.js"></script>';
echo '<script type="text/javascript" src="includes/js/altimit.js"></script>';
echo '<form id="ajouterArticle" method="post">';
echo '<fieldset>';
echo '<p align="center">';
echo '<label for="titre">Titre</label><br />';
echo '<input type="text" name="titre" id="titre" placeholder="Titre" size="50" required>';
echo '</p>';
echo '<p align="center">';
echo '<label for="url">Adresse</label><br />';
echo '<input type="text" name="url" id="url" placeholder="Adresse" size="100" required>';
echo '</p>';
echo '<p align="center">';
echo '<label for="contenu">Contenu</label><br />';
include("../core/bbcode.inc.php");
echo '<textarea name="contenu" id="contenu" placeholder="Contenu" cols="120" rows="20" required></textarea>';
echo '</p>';
echo '<p align="center">';
echo '<label for="tags">Tags</label><br />';
echo '<input type="text" name="tags" id="tags" placeholder="Tags" size="75">';
echo '</p>';
echo '<input type="hidden" name="id" id="id" value="create">';
echo '</fieldset>';
echo '</form>';
}
当我第一次打开对话框时,Firebug会显示:
POST http://localhost:8888/Whirlwind/altimit/includes/ajax/altimit.ajax.php 200 OK 2ms
GET http://localhost:8888/Whirlwind/altimit/includes/js/commun.js?_=1389180441681 200 OK 1ms
GET http://localhost:8888/Whirlwind/altimit/includes/js/altimit.js?_=1389180441682 200 OK 1ms
如果我点击“取消”(我的代码中的“Annuler”,然后重新打开对话框,Firebug会显示:
POST http://localhost:8888/Whirlwind/altimit/includes/ajax/altimit.ajax.php 200 OK 15ms
POST http://localhost:8888/Whirlwind/altimit/includes/ajax/altimit.ajax.php 200 OK 2ms
GET http://localhost:8888/Whirlwind/altimit/includes/js/commun.js?_=1389180441683 200 OK 1ms
GET http://localhost:8888/Whirlwind/altimit/includes/js/commun.js?_=1389180441684 200 OK 1ms
GET http://localhost:8888/Whirlwind/altimit/includes/js/altimit.js?_=1389180441685 200 OK 3ms
所以我的.js文件加载了两次,我不知道如何避免这种情况。
我在互联网上搜索了超过7个小时,并使用.remove();
,.destroy('dialog');
和其他内容尝试了很多内容。但是这样,我的对话框无法重新打开,这不是我想要的。
有没有人有想法?