2011-01-20 2 views
0

Je tente de mettre en surbrillance toutes les lignes paires d'une table après la suppression d'une ligne. Le tr est enlevé mais la re-mise en évidence ne fonctionne pas (j'obtiens deux rangées qui sont en surbrillance). Voici mon code; Toutefois, si j'ajoute une alerte ou quelque chose pour ralentir l'exécution entre la suppression et la mise en surbrillance, cela fonctionne.Mise en surbrillance des lignes du tableau après la suppression de la ligne du tableau

$("#tr_id").remove(); 

alert('slow execution'); 

// re-highlight table rows 
$("#table_id").removeClass("highlight"); 
$("#table_id tbody tr:even").addClass("highlight"); 

Des idées?

+0

Est-ce que votre code est exactement comme ça? Je pense que .remove() est censé fonctionner en série, donc un rappel ne serait pas nécessaire. – ash

+0

Merci Jasie tu as raison. Désolé c'était moi d'être stupide. Le code fonctionne comme il est écrit ci-dessus, mais dans mon code actuel, j'ai eu le remove() dans la fonction ajax.success et mon code re-highlight ci-dessous. J'ai déplacé mon code de re-highlight dans la fonction de succès et bien sûr cela a fonctionné. – Jordan

Répondre

1

Je pense que l'utilisation de la fonction delay de JQuery est idéale pour votre situation.

0

Si vous ne me dérange pas de ne pas soutenir IE 9 < et CSS3 est une option, vous pouvez utiliser la pseudo-classe nth-child et d'éviter la question tout à fait:

#table_id tbody tr:nth-child(even) { background-color: yellow; }

Suppression tr s ne pas effectuez l'application de la pseudo-classe: http://jsfiddle.net/axWYj/

Questions connexes