Jquery each inside each只影响最后一个元素
Jquery each inside each affects only the last element
我有嵌套循环的问题。请看看下面的小提琴:http://jsfiddle.net/7znfmp9o/
我希望每个部分都有视差效果,但是这里发生了一些奇怪的事情,.each()代码只应用于循环中的最后一个元素。
改变这一行:
$bgElm = $(this).find('.swiper-slide-bg, .mk-section-video')
into this:
$bgElm = $('.parallax-true').eq(0).find('.swiper-slide-bg, .mk-section-video')
在所需的部分上运行代码片段,但是在.eq(i)
上的迭代也不工作,即使在闭包中:
(function(i){ ... })(i);
我在这里错过了什么?谢谢你的帮助
问题出在这一行:
$bgElm = $(this).find('.swiper-slide-bg'),
在每次第一次forEach发生时设置这个内部变量的内容。当引发事件时,this的值是forEach循环中的最后一个元素。您应该将这些变量移到forEach循环之外,并在其中添加元素。然后,一旦事件在该变量内的元素上引发for循环。
我对我的提议做了一个非常粗糙的实现。当它工作时,您应该重新组织数据结构并给出适当的命名,以帮助描述您的意图。例如,$bgElm对于描述视差元素集的变量来说是一个糟糕的变量选择。
http://jsfiddle.net/myqswjnt/相关文章:
- 表追加而不附加最后一个元素
- 无法在Ionic select中预先选择最后一个选项
- 为什么画布形状只在3个画布中的最后一个画布上渲染
- Jquery append oly获取循环Rails中的最后一个elemen
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- dataTables-如何自定义分页类型以显示最后一个页码后面的省略号,
- 多维关联数组的最后一个索引
- 无法获取vis.js最后一个或第一个选定的网络节点
- 循环以检查数组中的最后一个图像
- jQuery .each:不要在最后一个字段中添加逗号
- 如何删除 FOR EACH 循环中的第一个和最后一个值
- .each() 函数只输出数组中的最后一个结果
- jQuery .each()、.find() 和 .append() 只在最后一个节点上工作
- 如何在 {{#each}} 循环中的元素之间添加分隔符,最后一个元素之后除外
- Jquery each():回调中的变量总是最后一个值
- Jquery each inside each只影响最后一个元素
- 跳过 jQuery 中 $.each 的最后一个索引
- Jquery .each()只处理最后一个元素
- 使用jquery 'each'获取类x的最后一个元素
- jQuery each()只选择最后一个值