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();});