Considérons le code suivant
<ul id="myTask">
<li>Coding</li>
<li>Answering</li>
<li>Getting Paid</li>
</ul>
Voici la différence
// Remove the myTask item when clicked.
$('#myTask').children().click(function () {
$(this).remove()
});
Maintenant, que se passe-t-il si nous ajoutons à nouveau une myTask ?
$('#myTask').append('<li>Answer this question on SO</li>');
Le fait de cliquer sur cet élément myTask ne le supprimera pas de la liste, puisqu'il n'est lié à aucun gestionnaire d'événements. Si, à la place, nous avions utilisé .on
Le nouvel article fonctionnerait sans aucun effort supplémentaire de notre part. Voici à quoi ressemblerait la version .on :
$('#myTask').on('click', 'li', function (event) {
$(event.target).remove()
});
Résumé :
La différence entre .on()
et .click()
serait que .click()
peut ne pas fonctionner si les éléments du DOM associés à l'élément .click()
sont ajoutés dynamiquement à un moment ultérieur, tandis que les .on()
peut être utilisé dans des situations où les éléments DOM associés à l'élément .on()
peut être généré dynamiquement à un moment ultérieur.