javascript - 无法将事件绑定(bind)到包含 jquery 对象的数组

标签 javascript jquery

我动态创建一个列表内容:

for (var i = 0; i<length; i++) {
    var $li = $('<li />', {
          text: ....
    }).appendTo($list);

    myArray.push($li);

    // This doesn't work
    $(myArray).click(function (e) { alert('cc'); });

但是当我得到所创建元素的父元素时,它就起作用了

// This works
$('ul.liste').first().find('li').click(function (e) {alert('cc'); });
  1. $(myArray)$('ul.liste').first().find('li') 有什么区别?
  2. 如何正确地将 js 数组转换为 jquery 集合?我认为用 $() 包装数组会起作用,但显然不行。

最佳答案

您可以使用 add 代替推送:

var $set = $();
for (var i = 0; i<length; i++) {
    var $li = $('<li />', {
          text: ....
    }).appendTo($list);
    $set = $set.add($li);
}
$set.click(...

如果您更喜欢构建原生数组然后将其转换为 jQuery 集合,那么您可以这样做

var $set = $.add.apply($(), myArray);

关于javascript - 无法将事件绑定(bind)到包含 jquery 对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41331314/

相关文章:

javascript - Javascript 正则表达式缺乏后视的解决方法

javascript - 我可以从元素数组创建 Javascript 选择器吗?

javascript - 如何返回 $(this)

javascript - 如何在单击下拉列表外部时关闭下拉列表,但在选择文本区域时阻止其关闭?

javascript - 如何将订阅放入 RxJS 或 Angular2 中 Observables 的过滤器中?

javascript - 如何像媒体查询一样在断点处禁用 JavaScript

javascript - 即使我的站点位于 https 上,Pubnub Chat APi 也没有调用任何 SSL 请求

javascript - jQuery - 删除一个 div 元素

javascript - 动态事件处理程序

JavaScript/CodeMirror - 刷新文本区域