J’ai deux divs différents (code a été simplifié, ce n’est pas le code réel.)
ce que je veux, c’est d’attacher le même événement de clic à #funt
: quelque chose comme:
$('#test').click(function() { DoWork(); }); $('#funt).click(function() { DoWork(); }); function DoWork(){ alert('yes'); }
mais n’y a-t-il pas moyen de définir le même événement de clic pour plusieurs div?
disons (oui, je sais que cela ne fonctionne pas!)
($('#test'),('#funt')).click(function(){alert('yes')});
Simplement:
$("#test, #funt").click(DoWork);
Voir Sélecteur multiple.
Assignez une classe à votre div, puis assignez l’événement click en utilisant la classe comme ceci:
ensuite
$('.clickable').click(function() { DoWork(); });
Vous pouvez également lister l’identifiant comme ceci:
$("#test, #funt").click(DoWork);
J’essaie généralement d’utiliser des classes parce que c’est plus propre quand vous avez plusieurs divs – vous n’avez pas à lister l’ID de chacune.
Tu étais en fait assez proche:
$('#test, #funt').click(function() { });
Vous avez deux options, soit vous pouvez donner une classe à ces deux div et ensuite lancer le code:
$(".myclass").click(function() { DoWork(); });
Ou vous pouvez définir une fonction comme:
function hookClick(arr, handler) { foreach (var i in arr) { $(i).click(handler); } }
puis exécutez-le en utilisant
hookClick(["#div1", "#div2"], function() { /*do sth cool })
Cela devrait marcher
($('#test','#funt')).click(function(){alert('yes')});
Vous pouvez essayer cette syntaxe pour le faire,
Lorsque vous travaillez avec des Classes
$(".className1, .className2, .classNameN").on('click', function(){ Do_Some_Work(); });
Lorsque vous travaillez avec des Id's
$("#ID1, #ID2, #IDN").on('click', function(){ Do_Some_Work(); });
Lorsque vous travaillez avec une combinaison d’ ID
et de Class
z w x y $('#zw , #z.y').on('click', function(){ Do_Some_Work(); //Pointer come here only when it click on `W` and `Y` });