jQuery noob ici, en essayant de produire des couleurs d'arrière-plan alternées. Cela fonctionne au format HTML:Simple jQuery fonctionne en HTML, pas ASP.NET
<script type="text/javascript">
$(document).ready(function() {
$('.stripedtable tr:even td').addClass(" evenrow");
alert("Just executed stripedtable jQuery in MasterPage");
});
</script>
La classe "evenrow" est ajoutée à la classe, pour les lignes paires uniquement. Génial! Sauf quand je le mets dans une MasterPage ASP.NET, la classe "evenrow" n'est jamais ajoutée. Dans FireBug, je confirme que la fonction est en cours d'exécution et jQuery est là. Le alert()
indique que la méthode est déclenchée après le chargement de la page. Pas de classe "evenrow", cependant, et pas de rayures.
Il est probablement pertinent que la table qui n'est pas modifiée comme je le souhaite, soit générée par un UserControl sur une page qui hérite de la page MasterPage.
C'est bizarre. Quand je vais à View Source, copiez la source entière à NoStripes.html, et ouvrez la page HTML dans un navigateur, j'obtiens la classe "evenrow" et les rayures. jQuery fonctionne bien.
Cela semble impliquer que (en quelque sorte) le HTML n'est pas vraiment là, lorsque la méthode se déclenche à partir de la MasterPage? Donc jQuery ne peut pas le modifier ?! Et le HTML est là, avec NoStripes.html, parce que j'ai sauvé la source générée ?!
J'ai essayé de mettre le $ ('. Stripedtable etc) sur un espace réservé de contenu sur le UserControl. Le alert()
montre le tir. Pas de rayures.
Suggestions? J'ai longuement googlé sans trouver de solution. C'est probablement quelque chose de simple, mais je ne peux pas le comprendre.
TIA - Hoytster
vous n'avez pas besoin de l'espace avant « evenrow » dans addClass (« evenrow »), jQuery sait comment séparer les classes différentes dans un élément – figha
j'ai enlevé le tag « bandes », depuis fait référence au cadre Stripes – rjohnston