jquery - chaque / cliquez sur la fonction ne fonctionne pas
EDIT: cela fonctionne, mais vous ne savez pas pourquoi?
$('button').each(function() {
$(this).bind(
"click",
function() {
alert($(this).val());
});
});
Je ne suis pas sûr de savoir pourquoi cela ne fonctionne pas... maintenant, j'essaye juste à la sortie d'une alerte avec le bouton de la valeur, mais il ne fonctionne pas sur ma page. Je ne reçois pas toutes les erreurs de la console de Firebug et ne peut pas voir tout ce qui pourrait l'empêcher de fonctionner.
Mon code HTML ressemble à ceci:
<table id="addressbooktable">
<thead>
<tr>
<th>Name</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>7892870</td>
<td><button id="button-20" class="custom-action" value="XY89" name="info">Click</button></td>
</tr>
<tr>
<td>9382098</td>
<td><button id="button-21" class="custom-action" value="XY544" name="info">Click</button></td>
</tr>
<tr>
<td>3493900</td>
<td><button id="button-22" class="custom-action" value="XY231" name="info">Click</button></td>
</tr>
</tbody>
</table>
Et le code ressemble à ceci:
$('button').each(function() {
$(this).click(function() {
alert($(this).val());
}
});
Mais, en cliquant sur elle ne fait rien du tout? Suis-je l'utiliser de façon incorrecte?
Probablement pas le problème, mais vous n'avez pas besoin .chaque, vous pouvez utiliser .cliquez sur un objet jQuery avec plus d'un nœud et il va se lier entre eux tous.
marquer une réponse?
marquer une réponse?
OriginalL'auteur newbie-shame | 2010-12-21
Vous devez vous connecter pour publier un commentaire.
Vous pouvez lier tous les boutons avec un cliquez sur l'événement de ce genre, il n'est pas nécessaire pour parcourir en boucle
Mais plus précis sélecteur peut être:
marquer comme réponse?
C'est beaucoup plus efficace, car le sélecteur est déjà titulaire de référence pour les éléments, plutôt que de traiter chaque() de l'élément comme un élément distinct.
OriginalL'auteur hunter
Il vous manque un
);
, et assurez-vous que votre code est dans undocument.ready
gestionnaire, comme ceci:De cette manière, il ne fonctionnera pas jusqu'à ce que ces
<button>
éléments dans le DOM pour$('button')
pour les trouver. Aussi, vous pouvez exécuter.cliquez sur()
sur un ensemble d'éléments, comme ceci:OriginalL'auteur Nick Craver
Il vous manque
)
:OriginalL'auteur Ashraf Abusada
Yup. Essayez ceci:
Vous pouvez également un
return false
ou.preventDefault()
.OriginalL'auteur lnrbob
Vous ne pouvez pas utiliser
.val()
méthode pour le bouton. Vous pouvez utiliser.attr()
pour obtenir la valeur de l'attribut. Si vous utilisez des attributs personnalisés ensuite utiliser attribut data-.Essayer
vous ere manque un
);
dans votre code, il n'est donc pas valide...voir ma réponse 🙂OriginalL'auteur rahul