委托这个词经常出现在javasript中,字面意思是代理与委托。那么在什么情况下使用呢?它的原理是什么?在各种框架中,经常可以看到委托相关的接口。这些接口有什么特殊用途?本文主要介绍了javascriptdelegate的用法和原理,以及Dojo、jQuery等框架中的delegate接口。JavaScript事件代理首先介绍JavaScript事件代理。事件委托是JS世界中一个非常有用和有趣的特性。当我们需要为多个元素添加事件时,我们可以通过将事件添加到它们的父节点并将事件委托给父节点来触发处理程序。这主要得益于浏览器的事件冒泡机制,后面会详细介绍。让我们举个例子来解释如何使用这个特性。这个例子主要取自DavidWalsh的相关文章(HowJavaScriptEventDelegationWorks)。假设有一个UL的父节点,其中包含了Li的多个子节点:Item1Item2项目3项目4项目5Item6当我们的鼠标移到li上的时候,我们需要获取这个li的相关信息,并浮出浮窗显示详细信息,或者当某个li被点击的时候它需要触发相应的处理事件。我们通常的写法是给每个li添加一些事件监听,比如onMouseOver或者onClick。functionaddListeners4Li(liNode){liNode.onclick=functionclickHandler(){...};liNode.onmouseover=functionmouseOverHandler(){...}}window.onload=function(){varulNode=document.getElementById("parent-list");varliNodes=ulNode.getElementByTagName("Li");for(vari=0,l=liNodes.length;i