jQuery .on

https://api.jquery.com/on

https://stackoverflow.com/questions/13985243/i-want-to-know-how-jquery-delegate-or-onfor-delegate-works

Have a look at the jQuery docs for on(), they explain the concept very well.

Also, you can have a look at the source code!

The lessons learned:

  • delegate is just a wrapper for on with different parameter order
  • on does just some parameter normalisation and handles one, but delegates then to jQuery.event.add( this, types, fn, data, selector );
  • event.add does do a lot of validation, handles multiple types and special cases, pushes the arguments on $.data("events") and calls elem.addEventListener(type, jQuery.event.dispatch, false)
  • event.dispatch then queries the handles from $.data("events") again and builds a jqEvent from the native event. Then it begins searching for delegated events - the code for that is quite straightforward - and pushes them on the handlerQueue, after that the normal handlers which are attached directly on the element. In the end, it just runs the handlerQueue, starting with the delegated handlers.
原文地址:https://www.cnblogs.com/chucklu/p/11095821.html