Jquery确认多次显示文本

时间:2015-02-20 12:17:53

标签: javascript jquery html

我有一个jquery确认对话框,它接受一些值并询问我们是否要删除它们的记录。单击按钮时会提示对话框。问题是,如果我只是关闭对话框(不选择也不选择也不是),下次打开该对话框时,它将显示两次消息。如果我第三次这样做,它会显示3次等等......否则它可以正常工作。但我也想解决这个问题。 注意:同一对话框中会显示多条消息。

这是我的代码:

<script>
            $(document).ready(function(){
                     $(".delete-button").click(function() {
                            var $row = $(this).closest("tr");    // Find the row
                        var names = $row.find(".name").text(); // Find the name
                        var surname = $row.find(".surname").text(); // Find the surname  
                            $("#dialog").dialog({
                                autoOpen: false,
                                buttons : {
                                "Yes" : function() {
                                    $.ajax({  type: "POST",  url: "delete_lecturer.php", data: { x: names, y: surname}   })   //sends post query to delete the selected row
                                .done(function( msg ) {location.reload();})  //reloads page in order for the change to take become evident
                                    },"No" : function() {$(this).dialog("close");}
                            }
                            });
                        $("#dialog").dialog("open");
                        $('<p>Are you sure you want to delete lecturer '+names+' '+surname+'?</p>').appendTo('#dialog');
                });
        });
</script>

在这里我为它创建了div:

<div id="dialog" title="Action can not be reversed!"></div> 

我没有将消息放在div中,因为我需要在消息中传递值name和surname。但我认为这导致了这个问题。

2 个答案:

答案 0 :(得分:1)

每次点击都需要清除$("#dialog")的内容,否则每次点击都会在div中添加一个额外的段落。

更改

  $("#dialog").dialog("open");

 $("#dialog").html('').dialog("open");

甚至

$("#dialog").html('<p>Are you sure you want to delete lecturer '+names+' '+surname+'?</p>').dialog("open");

答案 1 :(得分:0)

 $("#dialog").empty().dialog("open");