jquery - jQuery 中 .click() 优于 .bind ('click' )

标签 jquery

除了需要输入大量内容之外,使用 .click() 相对于 .bind('click') 或反之亦然还有什么好处吗?

最佳答案

根据一些非常不科学且非常快速的测试,使用 .bind 与 .click 相比,速度提高了 15%(大约),每个测试都进行了超过 50,000 次迭代。

它并不大,除非您要绑定(bind)大量事件,但我始终认为,在不费力气的情况下使其更快是值得做的事情。

我的快速而肮脏的测试:http://jsbin.com/ixegu/edit

其他好处 - 绑定(bind)多个事件

既然你接受了这个答案,我想我应该补充一点。您还可以使用.bind绑定(bind)多个事件,例如:

$('#link').bind('mouseover focus', function() { ... });

还有另一种语法可以通过bind() 方法绑定(bind)多个事件。来自 docs :

$("div.test").bind({
  click: function(){
    $(this).addClass("active");
  },
  mouseenter: function(){
    $(this).addClass("inside");
  },
  mouseleave: function(){
    $(this).removeClass("inside");
  }
});

使用bind()传递事件的额外数据

然后,您可以在创建绑定(bind)时传递任意数据(仅在创建绑定(bind)时)

<div id="link">Happy</div>
<div id="otherlink">Sad</div>

function myHandlerFunc(e) {
  alert('This is a ' + e.data.myVal + ' function.');
}

$('#link').bind('click', { myVal : 'Happy' } , myHandlerFunc);
$('#otherlink').bind('click', { myVal: 'Sad' }, myHandlerFunc);

当您点击快乐时,上面的警报会显示“这是一个快乐的链接”,当您点击悲伤时,则会发出“这是一个悲伤的链接”。请参阅http://jsbin.com/idare/edit举个例子。

阅读文档

You can always find out more here.

关于jquery - jQuery 中 .click() 优于 .bind ('click' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2938934/

相关文章:

jquery - 显示/隐藏 div 并带有向左\向右滑动动画

javascript - jquery geocomplete 无法与 vue js 一起使用

jquery - 动态填充下拉菜单

javascript - 隐藏的 Jquery 不适用于 css 动画

jquery - 我可以使用 jQuery( ) 作为构造函数吗?

javascript - 在 HTML5 上取消滚动

jquery 表单过滤器在每次选择后不会重置

javascript - 如何从单选按钮列表中更改已选择的单选按钮的颜色

javascript - 为什么此脚本在 FF 和 IE 中有效,但在 Google Chrome 中无效?

javascript - Cordova 捕捉向上、向下、向左、向右按钮