javascript - jQuery - 为什么我不能将事件绑定(bind)到循环中的元素?

标签 javascript binding jquery

这是我的代码:

  var b = $(slipStream.conf.mainVis).find('p#prev');
  b.click(function() {
    slipStream.slideLeft();
        return false;
  });

  b = $(slipStream.conf.mainVis).find('p#next');
  b.click(function() {
    slipStream.slideRight();
        return false;
  });

  b = $(slipStream.conf.controls).find('li img');
  console.log(b);
  for (var l in b) {
        l.click(function() {
              var visIndex = l.index();
              console.log(visIndex);
        });
  };

前两个绑定(bind)成功,没有问题。但我无法循环遍历集合并将某些内容绑定(bind)到每个成员? (控制台告诉我“l.click 不是函数。”)这是 jQuery 的限制还是我的代码关闭了?不过,这似乎是做到这一点的方法......

最佳答案

当您枚举 jQuery 对象时,枚举的值是实际的 DOM 节点,而不是 jQuery 包装器。因此,它们没有 click 方法,但您可以再次包装它们以获得所有常用功能。

当然这不是必需的,因为您可以直接从初始 jQuery 实例附加一个包装器:

$(slipStream.conf.controls).find('li img').click(function() {
    var visIndex = $(this).index();
    console.log(visIndex);
});

关于javascript - jQuery - 为什么我不能将事件绑定(bind)到循环中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9583072/

相关文章:

javascript - 在 FabricJS 1.7.3 中,通过 JSON 加载 curveText 不再有效

wpf - 将元素焦点与附加属性绑定(bind)?

wpf - MVVM 中的事件绑定(bind)

wpf - 元素移动时绑定(bind)到 Canvas.Left 会中断

javascript - 单击模式“同意”按钮时未选中复选框

javascript - 使用 HTML CSS 和 JS 拖动对象

javascript - 插入对象时未返回响应

jquery - 无限滚动在向下滚动到下一页时出现模板错误

javascript - IIS 正在添加默认 'X-Frame-Options:SAMEORIGIN' 即使我在默认网站级别添加了新的 HTTP 响应 header 作为'X-Frame-Options :ALLOW'.

javascript - 到达特定部分的底部时如何将静态位置更改为固定位置