为什么在点击事件期间抓住?使用.on()代替.click()

时间:2014-05-21 08:39:08

标签: javascript php jquery ajax json

为什么第二个代码比第一个代码好?为什么不直接抓住.vote a,而不是抓住body标签?我正在使用AJAX / JSON / PHP创建一个投票系统:

$('.vote a').click(function() {});

$('body').on('click','.vote a',function(){});

2 个答案:

答案 0 :(得分:6)

第二个示例是委托事件处理程序。它将click事件附加到正文,以便它可以应用于页面加载后附加到DOM的任何.vote a元素。

即使在DOMReady之后没有添加任何元素,如果需要将相同的事件处理程序附加到很多元素,您也可能会看到使用委托模型的性能提升。

答案 1 :(得分:1)

这种做法被称为event-delegation。当绑定在运行时(动态)创建的元素的事件时,这将非常有用。