(之前我发了一篇关于此的帖子,但我会在这篇文章中稍微清楚一点。)
我在使用windows.confirm框时遇到了一些问题。我的click-event打开一个jquery对话框并加载一个对象列表。每个对象都有一个删除按钮,删除并发回一个更新的列表(通过Django视图)。
我试图在删除之前进行确定/取消确认。它工作一次。我遇到的问题是,下次打开对话框时,单击删除我必须按OK /取消两次,然后按三次等等。
有什么想法吗? (我也尝试过,否则返回false)
$("#mylist").click(function(event) {
event.preventDefault();
$('#dialog').load($(this).attr('href')).dialog({
width: 800,
height: 530,
resizable: false,
title: "Dialog Title",
autoOpen: true,
modal: true
});
$("#dialog").on("click", ".delete", function(event) {
event.preventDefault();
var val = window.confirm('Are you sure you want to delete this?');
if(val == true) {
$("#dialog").load($(this).attr("href"));
}
});
});
答案 0 :(得分:3)
在定义第二个函数之前尝试关闭第一个函数:
$("#mylist").click(function(event) {
event.preventDefault();
$('#dialog').load($(this).attr('href')).dialog({
width: 800,
height: 530,
resizable: false,
title: "Dialog Title",
autoOpen: true,
modal: true
});
});
$("#dialog").on("click", ".delete", function(event) {
event.preventDefault();
var val = window.confirm('Are you sure you want to delete this?');
if(val == true) {
$("#dialog").load($(this).attr("href"));
}
});
答案 1 :(得分:1)
也许你的问题是包含确认的点击事件在#mtlist点击事件中。
试试这个:
$("#mylist").click(function(event) {
event.preventDefault();
$('#dialog').load($(this).attr('href')).dialog({
width: 800,
height: 530,
resizable: false,
title: "Dialog Title",
autoOpen: true,
modal: true
});
});
$("#dialog").on("click", ".delete", function(event) {
event.preventDefault();
var val = window.confirm('Are you sure you want to delete this?');
if(val == true) {
$("#dialog").load($(this).attr("href"));
}
});
答案 2 :(得分:0)
请改为尝试:
$("#mylist").click(function(event) {
event.preventDefault();
$('#dialog').dialog('destroy').remove();
$('#dialog').load($(this).attr('href')).dialog({
width: 800,
height: 530,
resizable: false,
title: "Dialog Title",
autoOpen: true,
modal: true
});
如果它破坏了一切,请尝试不删除