.bind()或.click()更好地绑定click事件处理程序吗?

Har*_*rry 0 jquery

要向元素添加单击事件处理程序,是.bind('click').click更好?有什么区别?任何表现方面?

Jam*_*ice 5

没有区别.在内部,click只是呼叫on,bind也只是呼叫on.因此,对于非常小的速度增加,只需使用on:

$("#someId").on("click", function () {
    //Do stuff
});
Run Code Online (Sandbox Code Playgroud)

以下是.click()方法的jQuery 1.7.2 源代码的相关部分:

return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);
Run Code Online (Sandbox Code Playgroud)

方法来源.bind():

return this.on(types, null, data, fn);
Run Code Online (Sandbox Code Playgroud)

如果你在1.7版以下使用jQuery ...

请注意,该.on()方法是在jQuery 1.7中引入的.如果您使用的是旧版本,.click()则会在内部调用.bind().这是1.6.2来源.click():

return arguments.length > 0 ? this.bind(name, data, fn) : this.trigger(name);
Run Code Online (Sandbox Code Playgroud)