515 votes

JQuery même événement de clic pour plusieurs éléments

est-il possible d'exécuter le même code pour différents éléments de la page?

 $('.class1').click(function() {
   some_function();
});

$('.class2').click(function() {
   some_function();
});
 

au lieu de faire quelque chose comme:

 $('.class1').$('.class2').click(function() {
   some_function();
});
 

Merci

990voto

Eevee Points 18333
 $('.class1, .class2').click(some_function);
 

Ou:

 $('.class1').add('.class2').click(some_function);
 

146voto

bzin Points 23

J'utilise normalement sur au lieu de cliquer. Cela me permet d'ajouter plus d'événements listiners à une fonction spécifique.

 $(document).on("click touchend", ".class1, .class2, .class3", function () {
     //do stuff
});
 

J'espère que cela aide!

49voto

ubercooluk Points 4342
 $('.class1, .class2').click(some_function);
 

Assurez-vous de mettre un espace comme $ ('. Class1, space here.class2') sinon cela ne fonctionnera pas

19voto

code_burgar Points 6845

Utilisez simplement $('.myclass1,.myclass2,.myclass3') pour plusieurs sélecteurs. De plus, vous n'avez pas besoin de fonctions lambda pour lier une fonction existante à l'événement click.

1voto

Reza Points 860

Je suppose que vous avez n éléments:

 var selectors = new Array();

for(i=1; i <=n; i++)
{
    selectors.push('selector' + i);   
}

$(selectors).each(function(index, item){
    $("#" + item).live('click', function(){ "do some stuff" });     
});
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X