jQuery: $().click(fn) と $().bind('click',fn); の違い
jQuery: $().click(fn) vs. $().bind('click',fn); の違い
$().click(fn)
と$().bind('click',fn)
はどちらも、要素にクリックイベントハンドラを割り当てるために使用されます。- どちらも同じ動作をするように見えますが、いくつかの重要な違いがあります。
詳細:
機能 | $().click(fn) | $().bind('click',fn) |
---|---|---|
イベントタイプ | クリックイベントのみ | 複数のイベントタイプ |
ネームスペース | なし | ネームスペースを使用可能 |
デフォルトアクション | 阻止しない | 阻止する |
バージョン | jQuery 1.0 から | jQuery 1.4 から |
推奨度 | 非推奨 | 非推奨 |
イベントタイプ:
$().click(fn)
は、クリックイベントのみを処理します。$().bind('click',fn)
は、クリックイベントだけでなく、その他のイベントタイプも処理できます。
ネームスペース:
$().click(fn)
は、イベントハンドラにネームスペースを使用できません。- ネームスペースを使用すると、異なるイベントハンドラを区別することができます。
デフォルトアクション:
- デフォルトアクションを阻止すると、リンクの遷移などが抑制されます。
バージョン:
$().click(fn)
は、jQuery 1.0 から使用できます。
推奨度:
$().click(fn)
と$().bind('click',fn)
は、jQuery 3.0 で非推奨になりました。- 代わりに、
$().on('click',fn)
を使用するべきです。
$(function() {
$('#button').click(function() {
alert('ボタンがクリックされました');
});
});
$().bind('click',fn):
$(function() {
$('#button').bind('click', function() {
alert('ボタンがクリックされました');
});
});
$(function() {
$('#button').on('click', function() {
alert('ボタンがクリックされました');
});
});
各コードの説明:
- 上記のコードは、いずれもボタンがクリックされた時にアラートを表示します。
jQuery でクリックイベントハンドラを割り当てるその他の方法
- 上記の例で紹介した方法と同じです。
- jQuery 3.0 から推奨されている方法です。
$('selector').live('click', function() { ... });:
- 過去のバージョンの jQuery で使用されていた方法です。
- jQuery 1.9 で非推奨になり、jQuery 3.0 で削除されました。
- 新しいバージョンの jQuery では使用 しない でください。
- イベントの委譲を使用するものです。
- イベントの発生時に、親要素から子要素へイベントを伝播させることができます。
- 特定の状況で役立つ場合があります。
$(document).ready(function() { ... });:
- DOMContentLoaded イベントが発生した時に実行されるコードを記述します。
- クリックイベントハンドラを含む、その他のコードも記述できます。
イベントオブジェクトを使用する:
- イベントオブジェクトを使用すると、イベントに関する情報を取得することができます。
- イベントの種類、発生した要素、マウスの位置などを取得できます。
javascript jquery event-handling