jQuery を使用してイベント ハンドラーを接続する場合、クリック メソッドの使用に違いはありますか
$().click(fn)
bind メソッドを使用する場合と比較
$().bind('click',fn);
bind のオプションの data パラメータ以外。
jQuery を使用してイベント ハンドラーを接続する場合、クリック メソッドの使用に違いはありますか
$().click(fn)
bind メソッドを使用する場合と比較
$().bind('click',fn);
bind のオプションの data パラメータ以外。
価値があるものについては、jQuery ソースから:
jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
"mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
"change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
// Handle event binding
jQuery.fn[name] = function(fn){
return fn ? this.bind(name, fn) : this.trigger(name);
};
});
いいえ、違いはありません -
$().click(fn)
通話
$().bind('click',fn)
マシューの答えは+1ですが、一度に複数のイベントハンドラーをバインドすることもできます。bind
$('#myDiv').bind('mouseover focus', function() {
$(this).addClass('focus')
});
これは、以下と同等のはるかにクリーンです。
var myFunc = function() {
$(this).addClass('focus');
};
$('#myDiv')
.mouseover(myFunc)
.focus(myFunc)
;
2 番目のフォームを使用してカスタム イベントをバインドできるという点で、1 つの違いがあります。そうでなければ、それらは同義のようです。参照: jQuery イベント ドキュメント
.click()の方がはるかに論理的だと思いますが、それがあなたの考え方だと思います。
$('#my_button').click(function() { alert('BOOM!'); });
あなたが得るのと同じくらい単純なようです。
バインド時に一度だけ発生するバインドの [data] パラメータがあります。
bind の最初のパラメーターとしてカスタム イベントを指定することもできます。
Google Chromeを使用している場合、開発者ツールにはイベントリスナーツールがあり、そのイベントをスパイする要素を選択します。
両方の方法を試してみると同じ結果が得られるため、同等です。
.live()とのインターフェイスの一貫性のため、.bind ()を好みます。コードが読みやすくなるだけでなく、コード行を変更して、他のメソッドではなく1つのメソッドを使用するようになります。