在jQuery中绑定事件的更好方法

mav*_*ame 3 jquery events bind

我正在寻找一种更好的方法将多个事件绑定到jQuery中的单个元素.我试图避免编写多个$(元素).bind('event',...)或$(element).event(...)语句.

// old way    
var textbox = $('input');
$(textbox).focus(function() { ... }
$(textbox).blur(function() { ... }

// new way
$(textbox).extend({
    focus: function() {
           ...
    },
    blur: function() {
            ....
    }
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种实现不起作用.有人有更好的建议吗?谢谢.

Ant*_*ist 9

到目前为止,所有答案都假设您希望将相同的回调函数绑定到多个事件.如果不是这种情况,请考虑使用.on()事件地图:

$('selector').on({
    focus: function(e) {
        // do something for focus
    },
    blur: function(e) {
        // do something else entirely for blur
    },
    ...
}
Run Code Online (Sandbox Code Playgroud)