Is there any difference between :
$('selector').change(function() {});
and
$('selector').on("change", function() {});
And if there is, which one should I use in most cases?
No difference, internally change
function would use .on(...)
to bind the respective event.
function (data, fn) {
return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);
}
The is no difference at all, they both trigger the same javascript function. You can use both in any browser that supports the addEventListener
modules.
Check the list of browsers that support it: http://caniuse.com/#feat=addeventlistener
However to remove the event, you'll have to use .off( "change" )
as the jquery doc suggests
Hope it helps
in accordance to method documentation $('selector').change( function() {})
is just a shortcut for $('selector').on("change", function() {});
. indeed this is the same.
click
work on already exits elements andonclick
also work with dynamically generated elementson()
method to delegate it. This is not the case here