有各种方法将事件绑定到jquery中的元素
.click,.bind,.live,.delegate,在.data中保存事件数据等
这些中最优秀的方法是什么?为什么?
不会像这样的单一模式更有益吗?
$('selector').bind({
event: 'click mouseover ...',
keepAlive: (true, false, ...),
trigfunction: (function() {
// I run for click
}, function() {
// i run for mouseover
}, function() {
///...
})
});
Run Code Online (Sandbox Code Playgroud)
我不同意设置会更简单,因为你很少将超过1或2个事件绑定到对象,至少在宏观方案中......认为它确实发生了.
.event(func)是一种快捷方式,它等同于.bind('event', func)所以无论您的偏好是什么都有重要.但是,如果您想要将相同的处理程序绑定到多个事件,.bind('event1 event2 event3', func)则要短得多.
.delegate(selector, event, func)只是.live('event', func)有一个背景,但当然这些冒泡,所以他们有另一种用途......不一定"优越",只取决于目的.
这一切都取决于你想要实现的目标,哪个更好.绑定4,000个元素的.bind()效率低于.live()或低于.delegate()一次.反过来也是如此,.bind()在单个元素上(不是通过AJAX替换等)比.live()听一个会冒泡20次的事件要高效得多.如果您循环使用JSON作为示例和绑定n项,那么这应该是一个问题,因为花费时间分配这些事件处理程序.
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |