2010-03-11 6 views
3

ok j'ai 6 boutons, j'essaie d'avoir un écouteur jquery lorsque vous passez la souris sur l'un des 6 boutons, ça change de classe. im en utilisant une boucle pour ce faire, voici mon code:jquery loop hover button

$(document).ready(function() { 
for($i=1;$i<7;$i++) { 
     $('#button'+i).hover(function() { 
     $(this).addClass('hovering'); 
     }, function() { 
     $(this).removeClass('normal'); 
     }); 
} 
}); 

chaque bouton a une carte d'identité de "buttonx" (x étant un nombre)

aide?

+0

Il serait utile de voir votre code HTML. Il existe plusieurs méthodes pour obtenir l'effet désiré, mais il peut y avoir un moyen très clair et concis selon votre situation. –

+0

Vous devez être un programmeur perl/php. Vous n'avez pas besoin de '$' devant les variables i :) – ryeguy

Répondre

1

Vous ne devriez pas avoir besoin d'utiliser une boucle. Utilisez simplement l'attribut startsWith selector sur l'identifiant. Aussi, vous pouvez vouloir changer la façon dont vous appliquez/supprimez les classes pour vous assurer qu'aucune classe n'a à la fois normal et planant.

$('[id^=button]').hover(function() { 
    $('[id^=button]').removeClass('hovering'); 
    $(this).addClass('hovering').removeClass('normal'); 
}, 
function() { 
    $(this).removeClass('hovering').addClass('normal'); 
}); 
+0

ok je l'ai eu grâce à guyys –

2

Vous n'avez pas besoin de boucler sur un tas d'ID générés. Vous pouvez simplement donner à chacun d'entre eux la classe « normale » et:

$("button.normal").hover(function() { 
    $(this).addClass("hovering"); 
}, function() { 
    $(this).removeClass("hovering"); 
}); 

« button.normal » retournera une collection de tous les boutons avec la classe « normale », il n'y a donc pas besoin d'une boucle, le vol stationnaire L'événement sera appliqué à tous les éléments de la collection.

+0

note qu'il n'utilise peut-être pas la balise 'button' .. son code utilise un' bouton 'id. –

1

Notez que la réponse de karim79 est une bonne voie à suivre.

Dans votre code, vous déclarez le compteur de boucle comme '$ i' mais essayez de faire référence à 'i'. Il devrait être $ ('# bouton' + $ i)