addClass utilisant .live () avec jQuery
Question
Je vis en utilisant la fonction .load()
pour charger le contenu dans un récipient div
de façon dynamique. Le contenu est en cours de chargement des données de table que je voudrais zébré. Le zébrures est facile sur une page statique, mais je ne peux pas comprendre comment la nouvelle rayure de zèbre contenu chargé dans le conteneur div
.
Voici le code avec lequel je suis en train de travailler:
$("table tbody tr:even").live("EVENT", function(){
$(this).addClass("alt");
});
Le « événement » ne doit pas être "click"
ou "mouseover"
mais « onload » ou quelque chose à cet effet. Y a-t-il un moyen de faire cela? Merci pour vos suggestions!
~ Jared
La solution
Vous devez simplement exécuter le code de zébrures dans la fonction de rappel pour la charge ().
$("#myDiv").load( "/somecontroller/someaction", { data: value }, function() {
$("#myDiv").find( "table tbody tr:even" ).addClass( "alt" );
});
Autres conseils
Dans le prolongement de la réponse de tvanfosson (Quel est votre meilleur pari dans ce cas), la fonction en direct () prend actuellement en charge que certains événements. Ceci est de la documentation http://api.jquery.com/ :
valeurs d'événement possibles: cliquez, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup
pas pris en charge: flou, mise au point, mouseenter, mouseleave, changement, soumettre
Pour ajouter des données à la table dynamique, vous devez utiliser un autre code. Est-il pas? à l'intérieur de cette fonction, après que les données de chargement à table, ajouter classe CSS à des lignes. Utilisation de la méthode ci-dessous en ce que la fonction,
$("table tbody tr:even").removeClass("alt").addClass("alt");
Je le fais de cette façon de déclencher l'événement avec jquery 1.4.2
.$ ( "corps") vivent ( "mousemove", function () {$ ( "tr clouté:. Nième enfant (même) ") addClass (" alt");});