J'utilise le code suivant pour détecter quand un bouton généré dynamiquement est cliqué.
$(document).on("click",".appDetails", function () {
alert("test");
});
Normalement, si vous venez de faire $('.appDetails').click()
, vous pouvez utiliser $(this)
pour obtenir l'élément sur lequel vous avez cliqué. Comment pourrais-je accomplir ceci avec le code ci-dessus?
Par exemple:
$(document).on("click",".appDetails", function () {
var clickedBtnID = ??????
alert('you clicked on button #' + clickedBtnID);
});
Aussi simple que cela puisse être
Utilisez $(this)
ici aussi
$(document).on("click",".appDetails", function () {
var clickedBtnID = $(this).attr('id'); // or var clickedBtnID = this.id
alert('you clicked on button #' + clickedBtnID);
});
Le paramètre d'événement de votre fonction est manquant.
$(document).on("click",".appDetails", function (event) {
alert(event.target.id);
});
La manière conventionnelle de gérer cela ne fonctionne pas bien avec ES6. Vous pouvez le faire à la place:
$('.delete').on('click', event => {
const clickedElement = $(event.target);
this.delete(clickedElement.data('id'));
});
Notez que la cible de l'événement sera l'élément sur lequel vous avez cliqué, mais que ce ne soit peut-être pas l'élément souhaité (il peut s'agir d'un enfant qui a reçu l'événement). Pour obtenir l'élément réel:
$('.delete').on('click', event => {
const clickedElement = $(event.target);
const targetElement = clickedElement.closest('.delete');
this.delete(targetElement.data('id'));
});