绑定事件的方法很多

Ali*_*deh 1 jquery

有各种方法将事件绑定到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)

Nic*_*ver 5

我不同意设置会更简单,因为你很少将超过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项,那么这应该是一个问题,因为花费时间分配这些事件处理程序.