窗口确认确定/取消对话框中的奇怪行为?

时间:2014-02-11 17:00:49

标签: javascript jquery html

(之前我发了一篇关于此的帖子,但我会在这篇文章中稍微清楚一点。)

我在使用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"));
  } 
});
});

3 个答案:

答案 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
    });

如果它破坏了一切,请尝试不删除