on()ist ein Versuch, die meisten Ereignisbindungsfunktionen von jQuery in einer zusammenzuführen. Dies hat den zusätzlichen Vorteil, die Ineffizienzen aufzuräumen mit livevs delegate. In zukünftigen Versionen von jQuery, werden diese Methoden entfernt und nur onund onewerden bleiben.
Beispiele:
// Using live()
$(".mySelector").live("click", fn);
// Equivalent `on` (there isn't an exact equivalent, but with good reason)
$(document).on("click", ".mySelector", fn);
// Using bind()
$(".mySelector").bind("click", fn);
// Equivalent `on`
$(".mySelector").on("click", fn);
// Using delegate()
$(document.body).delegate(".mySelector", "click", fn);
// Equivalent `on`
$(document.body).on("click", ".mySelector", fn);
Intern ordnet jQuery alle diese Methoden und Shorthand Event Handler-Setter der on()Methode zu, was weiter darauf hinweist, dass Sie diese Methoden von nun an ignorieren und nur Folgendes verwenden sollten on:
bind: function( types, data, fn ) {
return this.on( types, null, data, fn );
},
live: function( types, data, fn ) {
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
},
delegate: function( selector, types, data, fn ) {
return this.on( types, selector, data, fn );
},
Siehe https://github.com/jquery/jquery/blob/1.7/src/event.js#L965 .