重複の可能性:
.on('click')と.click()の違い
divのクリックを処理する場合、.onと.clickの違いは何ですか。
$('#myDiv').on('click' , function(e) {
});
$('#myDiv').click(function(e) {
});
重複の可能性:
.on('click')と.click()の違い
divのクリックを処理する場合、.onと.clickの違いは何ですか。
$('#myDiv').on('click' , function(e) {
});
$('#myDiv').click(function(e) {
});
どちらも同じです...
.click
内部的に.on
メソッドを呼び出します。
jQueryソースコードのこの部分が表示された場合。
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
// Handle event binding
jQuery.fn[ name ] = function( data, fn ) {
if ( fn == null ) {
fn = data;
data = null;
}
return arguments.length > 0 ?
this.on( name, null, data, fn ) :
this.trigger( name );
};
すべてのメソッドが順番にメソッドを呼び出すことがわかります.on
。だから、あなたの1つのレベルを減らします。
これは、.on
jQueryでの実装です。
jQuery.fn.extend({
on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
var origFn, type;
// Types can be a map of types/handlers
if ( typeof types === "object" ) {.....
後者は最初のショートカットです。
.on
より「低レベル」で柔軟性があります。次のように、イベントに2番目のパラメーター制約をセレクターに追加できます。
$('#myDiv').on('click' , "span.icon", function(e) {
// this event will be fired when a click is made on a span.icon inside the #myDiv
});
ドキュメントによると、jQuery 1.7 .click()の時点で:
.bind("click", handler)
このメソッドは、および のショートカットです。.on("click", handler)