Ext JS sur l'événement click
J'ai l'événement suivant:
Ext.onReady(function() {
Ext.select('.gallery-item img').on('click', function(e) {
Ext.select('.gallery-item').removeClass('gallery-item-selected');
Ext.get(e.target).parent().addClass('gallery-item-selected');
});
});
Qui fonctionne très bien lorsque la page se charge.
Cependant, je dynamiquement créer d'autres divs de la classe gallery-item avec une image à l'intérieur d'eux. L'événement click cesse de fonctionner une fois que je créer un nouvel élément.
Comment puis-je update
cette liaison?
Grâce.
Vous devez vous connecter pour publier un commentaire.
Ext.select
sélectionne tous les éléments et de manière statique, ajoute le gestionnaire de clic à cette occasion. De nouveaux éléments ont le même gestionnaire, il aurait également être ajouté pour une fois qu'ils sont créés. Cependant, ce n'est pas une approche optimale.Il serait préférable d'utiliser l'événement de délégation dans ce cas, ajouter un seul gestionnaire de clic à votre conteneur de l'élément, puis déléguer le traitement basé sur l'élément qui a été cliqué. C'est plus efficace (un seul gestionnaire d'événement fn nécessaire) et beaucoup plus flexible. Par exemple, si votre contenant de l'élément a eu l'id de la "galerie-ct' il serait comme:
MODIFIER: Si vous pouvez avoir des éléments imbriqués au sein de votre cliquez sur la cible, vous aurez envie de prendre un peu (mais pas beaucoup) plus avancé approche et l'apparence de votre cible que l'événement click de bulles à partir de l'élément cliqué (à l'aide de EventObject.getTarget). Si votre cible est dans la chaîne d'événements comme les bulles de l'cliqué el, alors vous savez qu'il est toujours valide, cliquez sur. Code mis à jour: