Jquery: variable comme sélecteur d'ID ne fonctionne pas
Ok, voici mon code:
$tabularID = 0;
$('a.swfselector').live('mouseover', function(event) {
$tabularID= $(this).parent().attr('id');
$(this).parent().children().not(this).find('.tab').each(function() {
$(this).fadeTo(100, 0.4)
})
$(this).find('.tab').each(function() {
$(this).fadeTo(100,1)
})
});
$('#' + $tabularID).live('mouseleave', function(event) {
alert($tabularID);
$(this).children().find('.tab').each(function() {
$(this).fadeTo(100,1)
})
});
Jquery n'aime pas ce sélecteur:
$('#' + $tabularID)
Bien que si je le modifier:
$('#27')
Il avertit ma variable $tabularID très bien, si je sais que ce n'est pas la variable qui est faux (Sortie de $tabularID est 27). J'ai besoin d'une variable ici parce que le parent de l'ID change en fonction de qui ils mouseover.
N'importe qui peut voir ce que je peux pas? probablement vraiment évident.
Pas sûr qu'ils soient à la racine de votre problème, mais vous ne devez pas utiliser des nombres purs comme Id. Préfixe avec une lettre comme
Bravo pour l'info, même si cela ne résout pas le problème. Quel est le raisonnement pour cela?
Le cahier des charges 😉 w3.org/TR/html401/types.html#type-name Bien que je pense en HTML5, il est autorisé.
a27
Bravo pour l'info, même si cela ne résout pas le problème. Quel est le raisonnement pour cela?
Le cahier des charges 😉 w3.org/TR/html401/types.html#type-name Bien que je pense en HTML5, il est autorisé.
OriginalL'auteur George Reith | 2011-04-26
Vous devez vous connecter pour publier un commentaire.
Votre pièce d'identité doit commencer par une lettre (a-z ou A-Z.
Ce code $('#' + $tabularID) est affecté à la première fois que vous l'exécutez. Cela signifie que votre $tabularID = 0.
Lorsque vous passez la souris sur il ne mettre à jour le $tabularID valeur, mais il ne sera pas de mise à jour de la liaison à l'événement de cet objet $('#' + $tabularID)
Je pense que vous pouvez modifier votre code comme ceci:
Mis à jour mon commnent
Je pense que c'est ça. Le problème, c'est que vous allez relier les gestionnaires d'événements pour le même élément de plus et plus de nouveau. Vous devriez les enlever trop.
Fonctionne comme un charme 😀 Merci beaucoup.
OriginalL'auteur YNhat
J'ai souvent utiliser des variables dans les sélecteurs. Et tous fonctionne bien pour moi de cette façon. Il suffit d'éviter l'utilisation d'Identifiants comme '123'. ID règles de nommage:
Merci de poster votre code sur jsfiddle.net par exemple. De son mieux pour voir non seulement JS code, mais le code HTML.
Comme l'OP déjà indiqué dans le commentaire à sa question, il a essayé et ça ne fonctionne pas...
jsfiddle.net/ePUeY - profiter, même problème.
Est-ce tout ce dont vous avez besoin? jsfiddle.net/ePUeY/2
OriginalL'auteur CoolEsh
J'ai aussi rencontré ce problème avec jQuery, mais constaté que la pratique régulière de JavaScript DOM peut gérer les identifiants de commencer avec des chiffres si c'est ça le problème. Cela pourrait peut être aider dans ce cas, mais il pourrait être intéressant de regarder si il est plus facile de modifier ce bout de code, plutôt que de changer la façon dont votre ID sont mis en place.
Notez que vous n'avez pas besoin de '#' au début.
Plus d'infos sur le document.getElementById
OriginalL'auteur Superbyte