jQueryの.live()を使ったイベント委譲(Event Delegation)
- #help-btnクリックしたら、openHelp()実行
- #save-btnクリックしたら、saveDocument()実行
- #undo-btnクリックしたら、undoChanges()実行
というコードをEvent Delegation使って実装。
Before:
document.onclick = function(event){ //IE doesn't pass in the event object event = event || window.event; //IE uses srcElement as the target var target = event.target || event.srcElement; switch(target.id){ case "help-btn": openHelp(); break; case "save-btn": saveDocument(); break; case "undo-btn": undoChanges(); break; //others? } }; 出典:Event delegation in JavaScript
After:jQuery使う
$("#help-btn").live("click",function(event){openHelp();}); $("#save-btn").live("click",function(event){saveDocument();}); $("#undo-btn").live("click",function(event){undoChanges();});