Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 无限循环每个()循环_Jquery - Fatal编程技术网

Jquery 无限循环每个()循环

Jquery 无限循环每个()循环,jquery,Jquery,我正在使用jQuery循环通过ul下的每个li元素,逐一显示它们。代码如下: $('.article_ticker li:first').siblings().hide(); var list=$('.article_ticker li:first').siblings(); list.each(function(index) { $(this).siblings().hide().delay(2000).fadeOut(); $(this).fadeI

我正在使用jQuery循环通过ul下的每个li元素,逐一显示它们。代码如下:

  $('.article_ticker li:first').siblings().hide();
  var list=$('.article_ticker li:first').siblings();

  list.each(function(index)
  {
      $(this).siblings().hide().delay(2000).fadeOut();
      $(this).fadeIn('fast');
  });

此代码工作正常,但一旦“each”循环结束,它就不会重复该序列。我想循环无限重复。就像最后一个元素淡出后,第一个元素应该淡入。

您可以执行以下操作

$('.article_ticker li:first').siblings().hide();
var list=$('.article_ticker li:first').siblings();

(function repeatTicker() {
  list.each(function(index) {
    $(this).siblings().hide().delay(2000).fadeOut();
    $(this).fadeIn('fast');
  });
  setTimeout(repeatTicker, 10);
} ());
我在这里使用setTimeout,否则浏览器会抱怨您的页面没有响应。
现在我使用了10ms,但我会尽可能地增加它。

您可以执行以下操作

$('.article_ticker li:first').siblings().hide();
var list=$('.article_ticker li:first').siblings();

(function repeatTicker() {
  list.each(function(index) {
    $(this).siblings().hide().delay(2000).fadeOut();
    $(this).fadeIn('fast');
  });
  setTimeout(repeatTicker, 10);
} ());
我在这里使用setTimeout,否则浏览器会抱怨您的页面没有响应。
现在我使用了10ms,但是我会尽可能地增加它。

当元素已经被隐藏在<代码> HIDED()/<代码>之前,你希望元素如何进入<代码> FADEUTE()/>代码?我认为你应该考虑一个定时器或者一个TutGrigi无法想象这是一个好主意,无论是在UX还是特别是代码性能方面。你本质上是在谈论一个无止境的循环,这是一个制造麻烦的方法。顺便说一句,您的两个代码行可以合并为
$(this).sibbines().hide().delay(2000).end().fadeIn('fast')我知道这不是一个好主意,或者用这种方法可能根本不可行……但是解决方案是什么呢?好的,我用下面的代码来完成:$(document).ready(函数(e){$('.article_ticker li:first').sides().hide();loop();function loop(){$('.article_ticker li:first').delay(1000).fadeOut(1000,function(){$(this).next().fadeIn('1000');$(this).appendTo('.article_ticker');loop();});我怀疑的是“appendTo”方法。该方法是否从顶部删除元素并将其插入底部?它是否确实删除了?在元素通过
hide()隐藏后,您希望元素如何
fadeOut()
?我认为你应该考虑一个定时器或者一个TutGrigi,无论是在UX还是特别是代码性能方面都无法想象这是一个好主意。你本质上是在讨论一个无休止的循环,这是一个麻烦的配方。顺便说一下,你的两条代码行可以合并为<代码> $(this)。
我知道这不是一个好主意,或者用这种方法可能不可行……但解决方案是什么呢?好的,我用下面的代码来完成:$(document).ready(function(e){$('.article_ticker li:first').sibles().hide();loop();function loop(){$('.article_ticker li:first').delay(1000).fadeOut(1000,function(){$(this).next().fadeIn('1000');$(this).appendTo('.article_ticker');loop();});我的疑问是关于“appendTo”方法。这个方法是否从顶部移除元素并将其插入底部?它是否确实移除了?好的,我正在使用以下代码来完成此操作:$(document).ready(函数(e){$('.article_ticker li:first')。同胞().hide();loop();函数loop(){$('.article_-ticker li:first').delay(1000).fadeOut(1000,function(){$(this).next().fadeIn('1000');$(this).appendTo('.article_-ticker');loop();});我怀疑的是“appendTo”方法。此方法是否从顶部移除元素并将其插入底部?它是否确实移除?如果移动现有节点,它将从其以前的位置移除。它不能同时位于两个位置。我看到您从循环本身调用循环。这不起作用。首先是浏览器将抱怨您的页面挂起,最终您将炸毁调用堆栈。请使用setTimeout解决这些问题。好的,我正在使用以下代码来完成此操作:$(文档)。就绪(函数(e){$('.article_ticker li:first')。兄弟姐妹().hide();loop();function loop(){$('.article_ticker li:first').delay(1000).fadeOut(1000,function(){$(this).next().fadeIn('1000');$(this).appendTo('.article_ticker');loop();});我怀疑的是“appendTo”方法。此方法是否从顶部移除元素并将其插入底部?它是否确实移除?如果移动现有节点,它将从其以前的位置移除。它不能同时位于两个位置。我看到您从循环本身调用循环。这不起作用。首先是浏览器将抱怨页面挂起,最终会导致调用堆栈崩溃。请使用setTimeout解决这些问题。