Javascript";“确认”;框显示多次。jQuery

Javascript";“确认”;框显示多次。jQuery,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个Ajax调用,它在单击div时运行。这将显示一个动态下拉菜单。下面是ajax调用 下拉菜单包含可单击以启动“编辑器”的其他项目的列表。问题是,当我关闭编辑器时,我请求用户确认他们想要离开页面,根据回答,div将关闭或保持打开状态以进行进一步编辑。以下是启动编辑器的代码: jQuery(function($){ var launchEditor = "#launch-editor-<?php echo $this->section_num; ?>";

我有一个Ajax调用,它在单击div时运行。这将显示一个动态下拉菜单。下面是ajax调用

下拉菜单包含可单击以启动“编辑器”的其他项目的列表。问题是,当我关闭编辑器时,我请求用户确认他们想要离开页面,根据回答,div将关闭或保持打开状态以进行进一步编辑。以下是启动编辑器的代码:

jQuery(function($){


    var launchEditor = "#launch-editor-<?php echo $this->section_num; ?>";
    var contentEditor = jQuery("#<?php echo $this->section_num; ?>-editor");
    var closeEditor = "#<?php echo $this->section_num; ?>-editor-close";
    var closeMessage = "Your changes will not be saved, are you sure you want to close without saving?";

    jQuery(document).on("click", launchEditor, function(){
        contentEditor.unbind();
        contentEditor.show("fade", 1000);
        contentEditor.draggable();
    });

    jQuery(document).on("click", closeEditor, function(){

        if(confirm(closeMessage)){
            contentEditor.fadeOut(1000);
            //contentEditor.die("click");   

        } else {

        }


    });
});
jQuery(函数($){
var launchEditor=“#启动编辑器-”;
var contentEditor=jQuery(“#-editor”);
var closeEditor=“#-编辑器关闭”;
var closeMessage=“您的更改将不会保存,您确定要关闭而不保存吗?”;
jQuery(文档).on(“单击”,启动编辑器,函数(){
contentEditor.unbind();
显示(“淡入淡出”,1000);
contentEditor.draggable();
});
jQuery(文档).on(“单击”,关闭编辑器,函数(){
如果(确认(关闭消息)){
contentEditor.fadeOut(1000);
//contentEditor.die(“单击”);
}否则{
}
});
});

问题如下。。。如果我多次单击初始div以启动AJAX调用,DOM中就会出现“jQuery(document).on(“click”,closeEditor…)”函数,当用户决定关闭编辑器时会出现问题。实际上,“确认”消息显示的次数等于单击原始div的次数。希望这有意义。。。如果需要更多信息,请告诉我。。。干杯。

下面的内容似乎解决了这个问题。。感谢斯克拉加的建议:

closeEditor.one().bind("click", function(){

    if(confirm(closeMessage)){
        contentEditor.fadeOut(1000);
    } else {
        //do something
    }

});

您是否想过使用
一次
并在关闭对话框时重新绑定您的方法?这样,对话框只能调用一次。