jquery - 关闭对话框导致太多递归

标签 jquery jquery-ui-dialog

我有一个包含行的表,可以通过单击每行旁边的图标来删除这些行。单击该图标时,会出现一个确认对话框,要求用户确认。

无论采取哪种操作(是、否、X)都会导致“太多递归”错误。该函数有效,因为行被删除,对话框关闭,但它会导致 TMR 错误并耗尽 Firefox 内存。


$('a img.delete').live('click', function(event){
rowid = this.name;$('#' + rowid).addClass('ui-state-highlight');
$("#dialog-del-r").dialog('open');
return false;
});

 $("#dialog-del-r").dialog({autoOpen:false,height:225,width:250,modal:false,position:[700,150],
buttons: {'Yes': function() {
   $('#summary-report').empty();
   $('#' + rowid).remove();
   $(this).dialog('close');
  },
  'No': function() {
   $('#' + rowid).removeClass('ui-state-highlight');
   $(this).dialog('close');
  }}
  ,close: function() {
   $('#' + rowid).removeClass('ui-state-highlight');
   $(this).dialog('close');
  }
 });

任何这些行 $(this).dialog('close');导致问题发生。

我还有一个表单重置按钮,它的作用完全相同:


 $('#reset-form').button({icons: {primary:'ui-icon-trash'}}).click(function(){
$('#dialog-reset').dialog('open');
});

 $("#dialog-reset").dialog({autoOpen:false,height:225,width:250,modal:false,position:[200,350],buttons: {'Yes': function() {$(this).dialog('close');location.reload(true);},'No': function() {$(this).dialog('close');}},close: function() {$(this).dialog('close');}});

最佳答案

我设法解决了这个问题。 close, 部分会自动关闭对话框,而我在那里有对话框('close')。



  ,close: function() {
   $('#' + rowid).removeClass('ui-state-highlight');
   $(this).dialog('close');
  }

应该是:



  ,close: function() {
   $('#' + rowid).removeClass('ui-state-highlight');
  }


关于jquery - 关闭对话框导致太多递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3153547/

相关文章:

jquery-ui - 如何让 jQueryui 对话框 scrollTop 将对话框内容滚动到顶部

jquery - 居中 jQuery 模态对话框弹出窗口

jquery - 在 html 表中搜索

jquery - Bootstrap 3 typeahead 不适用于 bootstrap 标签

css - ckeditor 表对话框文本框在 jquery ui 对话框中使用时不起作用

javascript - Jquery UI 对话框无法在初始化之前调用对话框上的方法;试图调用方法 'isOpen'

jquery - 在 jQuery UI 对话框中翻译 "Buttons"

javascript - jQuery - 顺序运行多个方法

javascript - 传递给 jQuery.append() 的字符串的大小是否有限制

jquery - 如何避免失去对 anchor 标签点击的关注?