如何清除包含.js文件的jQuery-UI对话框

时间:2014-01-08 11:33:40

标签: javascript jquery dialog load

我有一个使用.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');和其他内容尝试了很多内容。但是这样,我的对话框无法重新打开,这不是我想要的。

有没有人有想法?

0 个答案:

没有答案