Javascript"确认"框不止一次显示。 jQuery的

时间:2014-05-28 12:47:50

标签: javascript jquery ajax

我有一个在点击div时运行的Ajax调用。这会显示动态下拉菜单。以下是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 {

        }


    });
});

问题如下......如果我多次点击初始div启动AJAX调用,则“jQuery(document).on(”click“,closeEditor ...)”函数冒泡当用户决定关闭编辑器时出现问题的DOM。实际上,“确认”消息显示等于单击原始div的次数。希望这是有道理的...如果需要进一步的信息,请告诉我...干杯。

1 个答案:

答案 0 :(得分:0)

以下似乎解决了..感谢SCRAGAR的建议:

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

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

});