J'ai ajouté Ceci est mon code, où j'ajoute EventListener code> sur
DOM code> à l'aide de
JS code>, mais ces écouteurs déclenchent, dès que la page est chargée et qu'elle n'a pas Sens, quand je clique sur cet article.
EventListener code> à l'élément: p>
function logThis(me) {
console.log(me);
}
4 Réponses :
J'ai eu le même problème. Vous devez créer une fonction dans AddeventListener et appeler votre méthode. qui devrait faire le tour. P> P>
Ajout de mon commentaire en tant qu'Awer ici pour aider les autres débutants à entrer dans ce numéro.
Ici, vous avez mélangé les deux Lorsque vous attachez un événement d'événement à l'aide de JS, vous n'avez pas à appeler la fonction (c'est-à-dire non nécessaire d'utiliser la parenthèse). Donc, votre code sera comme ça:
Lorsque vous attachez un gestionnaire d'événements de HTML, vous faites ceci:
Vous pouvez également utiliser un écouteur d'événement global sur votre table avec une délégation d'événement p> Malgré la fondation de la question, pourquoi mon code ne fonctionnait pas (j'invoque la fonction), je n'ai toujours pas pu ajouter AddeventListener CODE> Signature et la façon dont vous ajoutez
Onclick code> Handlers en HTML. P>
TABLOWS.ROWS [R] .Cells [2] .Addeventlistener ("Cliquez sur", Logthis); Code> P>
Cliquez sur moi td> code> Ici, vous devez transmettre la chaîne avec l'invocation de la fonction. p>
votes
<table id="my-Table">
<tbody>
<tr><td>aa</td><td>bb</td><td>cc</td><td>dd</td></tr>
<tr><td>ee</td><td>ff</td><td>gg</td><td>hh</td></tr>
<tr><td>ii</td><td>jj</td><td>kk</td><td>ll</td></tr>
</tbody>
</table>
<p> this get click only on row 2 ( cc / gg / kk ) </p>
votes
EventListener CODE> à l'élément
DOM code>. Ainsi, j'ai essayé de définir
attribut code> sur cet élément à l'aide de
javascript code> et maintenant ça marche. J'ai bien peur que ce n'est pas une meilleure solution, mais il est toujours un peu un moyen d'accomplir mon objectif.
let table = document.getElementById('data_table' + deal);
for (let r = 0, n = table.rows.length; r < n; r++) {
table.rows[r].cells[2].setAttribute("onclick", "logThis(this)");
}
Vous appelez clairement la fonction:
logThis (this) code>.
@Teemu non, je n'appelle pas cette fonction nulle part dans le code source
Il vous suffit de passer le nom de la fonction dans l'appel AddeventListener. Pas besoin de l'invoquer.
TABLOW.ROWS [R] .Cells [2] .AddeventListener ("Cliquez sur", Logthis); Code>
Wut? Je viens de copier-coller l'invoke dans mon commentaire de votre exemple!
@CODEVERINE OUI! vous avez raison; S'il vous plaît, écrivez-le dans les réponses :)