У меня есть таблица со строками, которую можно удалить, щелкнув значок рядом с каждой строкой. При щелчке по значку появляется диалоговое окно подтверждения, запрашивающее у пользователя подтверждение.
Независимо от того, какое действие предпринято (Да, Нет, Х), возникает ошибка Слишком много рекурсии. Функция работает в том, что строка удаляется, а диалоговое окно закрывается, но это вызывает ошибку 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');}});