使用以下脚本遍历具有一类模糊的元素列表不起作用
<script type="text/javascript">
$(document).ready(function(){
var current = $('.blur').first();
$("#scroll-down").click(function(){
$(current).toggleClass('blur-unfocused');
current = $(current).next('.blur');
});
});
</script>
如何改进此脚本以遍历具有类模糊的下一个项目?
答案 0 :(得分:1)
你可以这样做吗?
$(document).ready(function(){
var current = $('.blur').first();
$("#scroll-down").click(function(){
$(current).toggleClass('blur-unfocused');
current = $('.blur:not(.blur-unfocused)');
});
});
答案 1 :(得分:1)
您可以将它们存储在一个数组中,然后根据需要进行遍历:
<script type="text/javascript">
$(document).ready(function(){
var all = $('.blur');
if (all.length > 0) {
var currentCount = 0;
var current = all[currentCount];
$("#scroll-down").click(function(){
$(current).toggleClass('blur-unfocused');
if (all.length > currentCount-1) {
current = all[++currentCount];
}
});
}
});
</script>
答案 2 :(得分:1)
因为它们可能位于页面的任何位置,所以我会将它们全部存储起来并遍历它们,而不是只检索第一个并尝试找到下面的一个:
$(document).ready(function(){
var $allBlurs = $('.blur');
var currentIndex = 0;
$("#scroll-down").click(function(){
// Retrieve Current Blur
var $current = $allBlurs.eq(currentIndex);
// Increment Index (optionally looping)
currentIndex = (currentIndex + 1) % $allBlurs.length;
// Retrieve Next Blur
var $next = $allBlurs.eq(currentIndex);
$current.toggleClass('blur-unfocused');
/* ... more code here ... */
});
});
<强> Example Fiddle 强>