2010-06-30 4 views
2

J'ai une table avec des lignes qui peuvent être supprimées en cliquant sur une icône à côté de chaque ligne. Lorsque l'icône est cliquée, une boîte de dialogue de confirmation apparaît, demandant à l'utilisateur de confirmer. Quelle que soit l'action effectuée (Oui, Non, X) entraîne une erreur de trop grande récursivité. La fonction fonctionne, en ce que la ligne est supprimée, et la boîte de dialogue se ferme, mais il provoque l'erreur TMR et mange la mémoire de Firefox.La boîte de dialogue Fermer provoque trop de récursion


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

Chacune de ces lignes $ (this) .dialog ('proche'); provoquer le problème à se produire.

J'ai également un bouton de réinitialisation de forme qui fait exactement la même chose:


$('#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

Est-il possible que rowid automatiquement réadapter. – Mark

+0

rowid est basé sur la ligne de la table (qui peut grossir ou se rétrécir) mais c'est un reflet rouge. Regardez le code de réinitialisation de la boîte de dialogue. Cela n'a pas de var rowid et ce code génère aussi l'erreur TMR. Le problème semble être avec la fermeture de la boîte de dialogue. 1. L'icône de réinitialisation de formulaire est enfoncée. 2. dialogue-reset.dialog est ouvert 3. L'utilisateur a demandé de confirmer si elles veulent le formulaire remis à zéro Quel que soit le choix que l'utilisateur prend (Oui, Non, X) l'erreur TMR est générée. –

Répondre

4

j'ai réussi à travailler sur celui-ci. La fermeture, la section ferme automatiquement la boîte de dialogue alors que j'avais le dialogue («fermer») là-dedans.



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

devrait être:



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


+0

Cela m'a sauvé la vie, merci beaucoup! Définitivement une erreur non évidente. – ragebiswas

+0

omg, j'ai eu la même erreur stupide. Merci beaucoup! –