.bind( eventType [, eventData], handler(eventObject) )
引数
- (string)eventType
- clickやsubmit、カスタムイベントOK
- (object)eventData
- イベントハンドラ内でeventオブジェクトを通して参照できる
- (object)eventData
- イベントハンドラ内でeventオブジェクトを通して参照できる
イベントハンドラを設定する。
.click()がonclickとすると.bind()はaddEventListenerみたいな感じなので.bind()を覚えておけば.click()とかは覚えなくてもなんとかなるはず。
でもってjQueryにはいくつかイベントハンドラを設定するAPIがある。DOMツリーに存在していない要素に対してイベントハンドラを設定する.live()。
.live()よりパフォーマンスがよいとされる.delegate()。
色々あってわけわかんねって感じですが1.7から.on()に集約されました。今後は.on()だけでなんとかなると思います。
サンプル
Javascript
$('.jqTest1 .execute').bind('click', { hoge: '.bind()実行中' }, function(e){
alert(e.data.hoge);
// vat txt = e.data.hoge;
//txt += $(e.target).closest('div.myBook').find('img').attr('alt');
$(e.target).closest('div.myBook').append(txt);
});
HTML
<div class="jqTest1">
<div class="myBook">
<button class="execute">click</button>
</div>
</div>
.bind( eventType [, eventData], preventBubble )
引数
- (object)eventData
- イベントハンドラ内で参照したいデータをハッシュで設定。
- (function)handler(eventObject)