2010-06-30 4 views
2

У меня есть таблица со строками, которую можно удалить, щелкнув значок рядом с каждой строкой. Когда нажимается значок, появляется диалоговое окно подтверждения с просьбой подтвердить его.Закрыть диалог вызывает слишком много рекурсии

Какое бы ни было предпринято действие (Да, Нет, 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'); 
    } 
}); 

Любой из этих строк $ (это) .dialog ('закрыть'); вызывают проблему.

У меня также есть кнопка сброса формы, которая делает точно то же самое:


$('#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');}}); 
+0

Возможно ли, что RowId автоматически перестраиваться. – Mark

+0

rowid основан на строке в таблице (которая может расти или уменьшаться), но это красная селедка. Посмотрите на код с обратным кодом. У этого нет никакого rowid var, и этот код также генерирует ошибку TMR. Проблема заключается в закрытии диалога. 1. Сброс значка формы. 2. Диалог-reset.dialog открыт 3. Пользователь попросил, чтобы подтвердить, если они хотят, чтобы форма сброса Независимо от выбора пользователь принимает (да, нет, X) генерируется ошибка TMR. –

ответ

4

мне удалось работать этот. Закрытие раздела закрывает диалог автоматически, тогда как у меня есть диалог («закрыть»).



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

должно быть:



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


+0

Это спасло мою жизнь, спасибо тонне! Определенно неочевидная ошибка. – ragebiswas

+0

omg, у меня такая же глупая ошибка. Большое спасибо! –