jquery click(function() 与 bind("click", function() 的区别

之前使用jq都是直接$(元素).click就用了,bind(‘元素‘)也用过,但是只是“用”没有去研究有什么区别,

   $("#btn").bind("click", function(){$("#divObj").show();return false;});
     
   $("#btn").click( function(){$("#divObj").show();return false;});

稍微看了下Jq的事件绑定源码:

jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
    "mousedown,mouseup,mousemove,mouseover,mouseout,change,select," +
    "submit,keydown,keypress,keyup,error").split(","), function(i, name){
 
    // Handle event binding
    jQuery.fn[name] = function(fn){
        return fn ? this.bind(name, fn) : this.trigger(name);
    };
});

后者是前者的快捷方法,bind可以向回调函数传递额外的数据。
源代码中可以看到,最终还是调用bind

也就是使用bind事件,减少了元素对 click 的翻译和遍历,也算是性能的一点提升吧。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。