Ajax Requestで帰ってきたエレメントにもイベントハンドラをくっつけてあげたいので、.ready()以外にもajaxCompleteでglobalなcallbackをつけてあげました。
function init(){
bindEvent1(); //色々bindしている
bindEvent2();
bindEvent3();
};
$(document).ajaxComplete(init);
$(init);
すると、Ajax Requestごとに、イベントハンドラが増えるじゃないですか。
調べてみると、.live()ってメソッドで重複なしのイベントハンドラ登録ができるみたい。.bind()から.live()に書き換えたら、無事重複は無くなりました。
Global callback for Ajax calls in JQuery
.live()はこちらで発見
.live() – jQuery API
Ajax Events
Ajax callbackについてはこちら。
ちなみにprototype.jsで同じ事をやるならこうかしら
function init(){
bindEvent1();
bindEvent2();
bindEvent3();
};
window.onload = init;
Ajax.Responders.register({
onComplete: init
});