我有一个绑定多个事件处理程序的元素:
<div id="info">
<button class="action-delete" type="button">Delete</button>
</div>
$("#info").on("click", ".action-delete", function() {
$.event.trigger({
type: "application",
message: {
name: "item-delete",
item: $("#info").data("item")
}
});
});
然后我希望用户在删除操作完成之前确保,因为action-delete
有很多元素适用于不同的模型,所以我尝试将以下脚本注入页面(来自另一个js)文件):
$(document).on("click", ".action-delete", function(e) {
return confirm("Sure to delete?");
})
但是我发现事件显示确认窗口,delete
操作仍然在用户选择之前完成。
有什么想法来解决它吗?
答案 0 :(得分:1)
问题在于您的确认电话:
$(document).on("click", ".action-delete", function(e) {
return confirm("Sure to delete?");
})
它应该是这样的:
$(document).on("click", ".action-delete", function(e) {
e.preventDefault(); //prevent default behavior
var conf = confirm("Sure to delete?");
if(conf == true){
$("#info").trigger( "click" ); //trigger click event for delete
}
});
另外,我建议从父div中删除click事件。而是创建一个删除功能,让确认对话框(&#39;是&#39;)触发该功能。