我正在尝试使用确认方法,但由于某种原因,确认窗口会弹出几次。我用Google搜索并尝试了不同的东西但不幸的是我无法正常运行。代码如下:
//user clicks on the delete button
$("#deletePopUpImage").click(function(){
console.log("deletePopUpimageCalled");
//get the id of the image
id = ($(this).parent().prop("id"));
//create the ajax request
data = "typ=function&functionType=deleteUserImage&id="+id;
//open the confirm box
var r = confirm("Are you sure that you want to delete this image?");
if (r == true) {
console.log("loadAjaxCAlled");
//Ajax call
loadAjax(data);
//hide the image and the loader
hideImagePopup();
} else {
//do nothing
}
});
奇怪的是,有时确认窗口弹出两次,有时是三次,有时是预期的一次。这就是插入两个console.logs的原因。
" deletePopUpimageCalled"总是只出现一次。然而" loadAjaxCAlled"出现好几次。
在Ajax请求的成功回调中,我只是隐藏了缩略图div。
你知道我上面的代码有什么问题吗?
由于 斯蒂芬
答案 0 :(得分:1)
可能是附加事件的代码:
$("#deletePopUpImage").click(function(){...});
被多次调用。每次调用.click(...)都会生成一个新的处理程序,在单击该按钮时会触发该处理程序。
某些浏览器会将相同的条目记录到一个(因此日志不会延伸得太快),这可能是您没有看到" deletePopUpimageCalled"多次。 最好通过在浏览器中调试来检查它。
答案 1 :(得分:0)
好的,我发现了问题。在Ajax成功处理程序中,我设置了已删除的图像的div,以显示:none而不是删除它。因此divIds可能会发生两次,三次等。更改代码后删除,它运行顺利。