Ada*_*dam 4 javascript jquery confirm
出于某些奇怪的原因,我得到了两次确认框.这是我的代码:
$(".DeleteComment").live("click", function(){
var CommentID = $(this).attr("rel");
var confirm
if (!confirm('Are you sure you want to permanently delete this comment?')){
return false;
}else{
$(this).html("loading").css("color", "#999");
//AJAX HERE
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
当我们在通过 AJAX 动态加载的元素上绑定事件时,就会发生这种情况
例如,我们在单击edit表单按钮时加载一些动态 html 内容(例如模式中的动态内容),
在该内容中,如果我们在某个按钮(例如按钮)上绑定了单击事件delete,那么每次我们单击edit表单按钮时,它都会将click事件绑定到delete按钮,
如果您在按钮的单击事件上设置了确认框delete,那么它会询问您与该单击事件绑定的次数一样多的次数,这意味着如果我们单击edit表单按钮 5 次,那么它会要求您确认 5 次。
因此,为了解决这个问题,您可以unbind每次将事件绑定到动态加载的元素之前,如下所示:
$(document).off('click', '.DeleteComment').on('click', '.DeleteComment', function () {
if (confirm('Are you sure you want to permanently delete this comment?')){
//Delete process
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
或者解决此问题的另一种方法是将脚本添加到主页中,这意味着静态页面不在动态加载的页面中。
| 归档时间: |
|
| 查看次数: |
9581 次 |
| 最近记录: |