on()adalah upaya untuk menggabungkan sebagian besar fungsi pengikatan acara jQuery menjadi satu. Ini memiliki bonus tambahan merapikan inefisiensi dengan livevs delegate. Dalam versi jQuery yang akan datang, metode ini akan dihapus dan hanya ondan oneakan ditinggalkan.
Contoh:
// 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);
Secara internal, jQuery memetakan semua metode ini dan steno pengendali event handler ke on()metode, lebih lanjut menunjukkan bahwa Anda harus mengabaikan metode ini dari sekarang dan cukup gunakan 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 );
},
Lihat https://github.com/jquery/jquery/blob/1.7/src/event.js#L965 .