Passer des paramètres au gestionnaire d'événements de clic avec jQuery
Lorsque vous travaillez avec jQuery, vous pouvez rencontrer le besoin de transmettre des paramètres à une fonction dans un cliquez sur le gestionnaire d'événements. Cela peut être particulièrement utile lorsque vous devez réutiliser la fonction et transmettre des paramètres différents à chaque appel.
Au départ, il peut sembler que .click() de jQuery ne permet pas le passage de paramètres, comme dans l'exemple suivant montre une tentative infructueuse :
<code class="js">$('.leadtoscore').click(add_event('shot')); function add_event(event) { // Function logic }</code>
Heureusement, il existe une solution simple à ce problème. Vous pouvez facilement transmettre un paramètre au gestionnaire d'événements click en utilisant la méthode .data(), qui vous permet d'associer des données à vos éléments HTML. Voici comment y parvenir :
<code class="js">$('.leadtoscore').data('parameter', 'shot').click(add_event); function add_event(event) { const parameter = $(event.target).data('parameter'); // Function logic using 'parameter' }</code>
Cette approche implique de définir l'attribut data sur l'élément HTML correspondant, puis d'y accéder dans le gestionnaire d'événements click à l'aide de la syntaxe event.target.data('parameter').
Comme alternative, jQuery version 1.4.3 et supérieure a introduit une manière plus concise de transmettre des données aux gestionnaires d'événements. Vous pouvez directement transmettre un objet de paramètres comme premier argument à .click(), comme ceci :
<code class="js">$('.leadtoscore').click({ parameter: 'shot' }, add_event); function add_event(event) { const parameter = event.data.parameter; // Function logic using 'parameter' }</code>
Avec l'une ou l'autre de ces méthodes, vous pourrez transmettre des paramètres à vos gestionnaires d'événements de clic et réutilisez-les sur plusieurs événements.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!