问题
I have an interesting question about event capturing, bubbling and jQuery.on()
.
I have recently learned more about the difference between event capturing and event bubbling and how the two flow differently in and out of the child-parent elements within the DOM.
So to add an event listener with "event capture direction" i would use:
element.addEventListener("click", myFunction, true);
and to add an event listener with "event bubble direction" i would use:
element.addEventListener("click", myFunction, false);
This is all good and well, but what I want to know is when using jquery.on()
to add event listeners, how does one specifiy the event direction in terms of capturing and bubbling?
currently I am using something like:
$('parent selector').on('click', 'child selector', function(){alert('just alert something already...');});
How do I tell jQuery that it needs to add these event listeners in the "event capture direction" or the "event bubble direction"?
回答1:
You can't. jQuery events works with event bubbling it doesn't support capturing.
Also see
- Why does jQuery event model does not support event Capture and just supports event bubbling
回答2:
You can use e.target to get the exact element that was clicked
$('.parent').on('click', function(e){
if(e.target.classList.contains('child'))
// do something
}
})
来源:https://stackoverflow.com/questions/21680825/event-capturing-event-bubbling-and-jquery-on