Javascript on()委托与delegate()委托

Javascript on()委托与delegate()委托,javascript,jquery,events,Javascript,Jquery,Events,$document.on'click'、'target'VS.$'body'。代表'click'、'target' 正如我所看到的,以上两种方法都能完成我想要的工作,但我想知道在这方面的最佳做法是什么 一个比另一个更有效吗?委托已被jQuery 1.7中的on取代。如各国所述: 从jQuery1.7开始,.delegate已被方法取代。但是,对于早期版本,它仍然是使用事件委派的最有效方法。方法中提供了有关事件绑定和委托的更多信息 不,只要在jQuery的最新版本中(如果我没有错的话)1.8+。o

$document.on'click'、'target'VS.$'body'。代表'click'、'target'

正如我所看到的,以上两种方法都能完成我想要的工作,但我想知道在这方面的最佳做法是什么

一个比另一个更有效吗?

委托已被jQuery 1.7中的on取代。如各国所述:


从jQuery1.7开始,.delegate已被方法取代。但是,对于早期版本,它仍然是使用事件委派的最有效方法。方法中提供了有关事件绑定和委托的更多信息


不,只要在jQuery的最新版本中(如果我没有错的话)1.8+。on方法suppress.delegate方法。所以,如果您使用1.8-jQueryVersionOne,那么您必须使用.delegate来完成几个目标,在1.8+上,您只需要.on方法


可能会有轻微的性能差异,因为很明显,一个会调用另一个。该库不包含两个执行相同操作的独立实现。不过,这种差异并不重要,因为另一个调用与它所做的其他工作相比,工作量非常小,实际实现可能会从一个版本更改为另一个版本

相反,不建议使用live方法,因为它的使用是非直观的,并且delegate或on允许您限制委派的范围。与在相同的事情上使用on相比,委托方法没有这样的缺点


该库的作者倾向于在更少的方法中包含更多的函数,因此作者的建议是将其用于所有方面。但是,如果您觉得使用delegate更清楚地显示了代码的意图,则不必遵循该建议。

从jQuery 1.7开始,.delegate已被.on方法取代。但是,对于早期版本,它仍然是使用事件委派的最有效方法。我不知道为什么我需要把它贴在这里,这不难找到:只要检查一下医生就会给你答案。。。顺便说一句,此处参数的委托顺序错误,尚未弃用;到目前为止,它没有消失的危险。与.live形成对比。@Jon我出于某种原因想到live。固定的