为什么第二个代码比第一个代码好?为什么不直接抓住.vote a
,而不是抓住body
标签?我正在使用AJAX / JSON / PHP创建一个投票系统:
$('.vote a').click(function() {});
$('body').on('click','.vote a',function(){});
答案 0 :(得分:6)
第二个示例是委托事件处理程序。它将click
事件附加到正文,以便它可以应用于页面加载后附加到DOM的任何.vote a
元素。
即使在DOMReady之后没有添加任何元素,如果需要将相同的事件处理程序附加到很多元素,您也可能会看到使用委托模型的性能提升。
答案 1 :(得分:1)
这种做法被称为event-delegation
。当绑定在运行时(动态)创建的元素的事件时,这将非常有用。