javascript - 将一个函数绑定(bind)到每个对象是否比一次将一个函数绑定(bind)到所有对象更糟糕?

标签 javascript jquery html performance append

我有循环并动态地将链接 append 到 #content。我写了 2 种方式。

(1)

$.each(array, function(key, value) {
    $('#content').append('<a href="#">text</a>');
    $('#content a:last').click(function(e) {
        $.ajax({ url: ...
             ...
        });
    });
});

(2)

$.each(array, function(key, value) {
    $('#content').append('<a href="#">text</a>');
});

$('#content a').click(function(e) {
    $.ajax({ url: ...
         ...
    });
});

问: 使用(1)方式而不是(2)是否更糟?你怎么知道?如何设置计时器来测试每个方法运行了多少秒(绑定(bind)“点击”事件)?

最佳答案

我更喜欢并建议您更喜欢第二个...它更清晰、可读并且不会一次又一次地创建点击处理程序,这根本不需要(因此委托(delegate) on在更高版本的 jquery 中引入,以高效地做完全相同的事情)......虽然我怀疑你的(2)脚本正在工作:..因为你必须将点击事件委托(delegate)给最近的静态父级以动态创建在您的情况下是 a..

的元素
$.each(array, function(key, value) {
  $('#content').append('<a href="#">text</a>');
});

$('#content').on('click','a',function(e) {
  $.ajax({ url: ...
     ...
  });
});

关于javascript - 将一个函数绑定(bind)到每个对象是否比一次将一个函数绑定(bind)到所有对象更糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17661468/

相关文章:

javascript - 无法访问 Facebook Graph Api 响应的数据 - reactJs

javascript - 按钮悬停问题的背景过渡

jquery - Bootstrap 崩溃一半在 iPhone 上工作

JavaScript - 多次调用单击函数将不起作用

JQuery Megamenu 问题 : Expands all instances when one is clicked

java - 使用 HttpClient POST 提交表单并上传

javascript - 如何使用 jQuery 更改可折叠内容的标题属性

javascript - 使用 JavaScript 更改 Div 样式而无需重新加载页面

javascript - ul 组件不会隐藏

javascript - 完成原始 document.title 上的脚本吗?