Modifier les données d'événement pendant la propagation

Existe-t-il un moyen d'attacher des données à un objet d'événement jQuery car il propage le DOM?

Pour clarifier, si vous avez trois divs imbriqués, chacun avec un écouteur d'événement de clic, puis cliquez sur les résultats de div entre les trois gestionnaires appelés du plus à l'extrême (propagation d'événement 101). Ce que j'aimerais faire, c'est d'ajouter des données à l'objet événement dans chaque gestionnaire accessible à la couche suivante. Comment je fais ça?

Merci.

Peut-être que j'ai mal compris la question, mais j'ai rencontré cette page StackOverflow tout en recherchant un moyen de faire la même chose.

J'ai découvert que vous pouvez renvoyer les valeurs / valeurs que vous souhaitez passer à la fin de chaque gestionnaire, puis les accéder dans les gestionnaires suivants à l'aide de la propriété event.result .

Démo simple à http://api.jquery.com/event.result/

L'objet d'événement qui est passé par jQuery est un wrapper autour de l'objet d'événement natif. Le bouleversement se produit au niveau javascript / navigateur et, par conséquent, l'objet d'événement natif semble être partagé entre tous les gestionnaires d'événements.

 $('div').click(function(e) { e.originalEvent.attribute = (e.originalEvent.attribute || "") + " " + $(this).prop("className"); alert(e.originalEvent.attribute); }); 

Testé sur Chrome, Firefox, Safari, IE9 et IE10. Si vous testez dans d'autres navigateurs, veuillez commenter avec les résultats.

Voici le violon: http://jsfiddle.net/5AQqD/

Bien que vous ne puissiez pas joindre des données directement à l'événement, vous pouvez toujours attacher des données au targetElement via les data() de jQuery data() :

 $('div').click(function(e) { var info = $(e.target).data('info') || ''; $(e.target).data('info', info + ' ' + $(this).attr('class')); }); 

Voici le violon: http://jsfiddle.net/eKVmU/