« nanjingfanyi | 首页 | sky72744 »

雨夜带刀

个人主页: http://stylechen.com/

留言(1 条)

jQuery最佳实践 留言:


引用Jan的发言:


"比如,有一个表格(table元素),里面有100个格子(td元素),现在要求在每个格子上面绑定一个点击事件(click),请问是否需要将下面的命令执行100次?"

还真的不需要,因为jQ的方法返回的对象是数组,直接调用bind()的时候已经把数组中的所有对象绑定了。



如果使用普通的方法给100个td绑定事件,当然是需要遍历的,时间就耗在这个遍历上。你说的jQ的方法返回的对象是数组,这个确实没错,但是在执行事件函数的时候是需要遍历整个数组,遍历的时候依次执行事件函数,也就是说如果有100个td,每个td执行一次事件函数,都要遍历一次。如果使用事件代理(delegate)利用事件冒泡的办法就省去了遍历对象数组这个环节,速度不快才怪呢。至于博主说的live方法绑定的和普通的bind方法绑定的时候一样都是需要遍历对象数组的,live和bind的区别在于前者也是事件代理。