我有一个在点击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的次数。希望这是有道理的...如果需要进一步的信息,请告诉我...干杯。
答案 0 :(得分:0)
以下似乎解决了..感谢SCRAGAR的建议:
closeEditor.one().bind("click", function(){
if(confirm(closeMessage)){
contentEditor.fadeOut(1000);
} else {
//do something
}
});