Cela ne fonctionnera pas:
$('#myElement').click(ElementClicked($(this)));
C'est d'exécuter la fonction ElementClicked()
avec tout ce this
est à la heure d'écriture et lie la valeur de retour de ElementClicked()
à l'événement click
. Ce qui dans ce cas n'est rien.
Vous aurez besoin de passe fonction à un événement de clic, comme ceci:
$('#myElement').click(function() { ElementClicked($(this)); });
Cela fait une fonction (n anonyme), qui sera lié à l'événement click
, et la fonction appelle ElementClicked()
lorsqu'il est exécuté, en passant this
. La fonction ElementClicked
peut être définie comme:
function ElementClicked(elem) {
elem.addClass('clicked');
}
Comme vous remarquerez que, this
dans la fonction qui est lié à l'événement sera l'élément cliqué. Ainsi, au lieu de faire une enveloppe de fonction qui appelle une fonction passage de l'élément, vous pouvez juste abrégez comme si:
$('#myElement').click(ElementClicked);
function ElementClicked() {
$(this).addClass('clicked');
}
Notez que la fonction est passée à click()
comme une variable au lieu d'être exécutée immédiatement, parce qu'il ya pas de parenthèses ()
après. Et BTW, vous voulez probablement dire addClass
au lieu de addCss
.
Bonne réponse! Je vous remercie! – Aximili