modify event data during propagation

后端 未结 3 734
心在旅途
心在旅途 2020-12-05 17:06

Is there any way of attaching data to a jQuery event object as it propagates up the DOM?

To clarify, if you have three nested divs, each with a click event listener

3条回答
  •  无人及你
    2020-12-05 17:58

    The event object that is passed by jQuery is a wrapper around the native event object. The bubbling happens at the javascript/browser level and hence the native event object seems to be shared among all the event handlers.

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

    Tested in Chrome, Firefox, Safari, IE9 and IE10. If you test in other browsers please comment with the results.

    Here's the fiddle: http://jsfiddle.net/5AQqD/

提交回复
热议问题