Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Javascript 破碎的四边形动画提要_Javascript_Jquery - Fatal编程技术网

Javascript 破碎的四边形动画提要

Javascript 破碎的四边形动画提要,javascript,jquery,Javascript,Jquery,嗨 由于某些原因,函数“shift()”没有根据firebug控制台选项卡正确定义。我直接从一个教程中得到了这个,不确定我在这里做错了什么 //animate post feed cycle var delay = 2000; // you can change it var count = 3; // How much items to animate var showing = 2; //How much items to show at a time var i = 0;

由于某些原因,函数“shift()”没有根据firebug控制台选项卡正确定义。我直接从一个教程中得到了这个,不确定我在这里做错了什么

//animate post feed cycle
 var delay = 2000; // you can change it
  var count = 3; // How much items to animate
  var showing = 2; //How much items to show at a time
  var i = 0;
  function move(i) {
    return function() {
      $('.feed'+i).remove().css('display', 'none').prependTo('#recent_listings');
    }
  }
  function shift() {
    var toShow = (i + showing) % count;
    $('.feed'+toShow).slideDown(1000, move(i));
    $('.feed'+i).slideUp(1000, move(i));
    i = (i + 1) % count;
    setTimeout('shift()', delay);
  }    

 setTimeout('shift()', delay);
标记如下所示(双括号是django上下文变量)


最近上市
{posts%%中的post为%s}
{{post.title | truncatewords:5}}
{%endfor%}

谢谢你的帮助

首先,您没有关闭a标签(不是真正的问题,但以后可能会导致其他问题)

其次,它看起来可能是一个js上下文问题。您可能希望将您的函数声明为公共函数来执行此操作,请将shift声明更改为下面的命令

this.shift = function() {
    //code here
}

首先,你没有关闭你的a标签(不是真正的问题,但以后可能会导致其他问题)

其次,它看起来可能是一个js上下文问题。您可能希望将您的函数声明为公共函数来执行此操作,请将shift声明更改为下面的命令

this.shift = function() {
    //code here
}

根据@d1k_的答案扩展为:

您不应该使用字符串调用
setTimeout
。字符串很可能没有在您需要的上下文中进行计算。这就是为什么d1k_建议在全局上下文中定义函数。但是,最好使用对函数的引用,该函数名为:

setTimeout(shift, delay);

顺便说一句,由于您正在“递归”调用
setTimeout
,您可能希望使用
setInterval

扩展@d1k\u的答案是:

您不应该使用字符串调用
setTimeout
。字符串很可能没有在您需要的上下文中进行计算。这就是为什么d1k_建议在全局上下文中定义函数。但是,最好使用对函数的引用,该函数名为:

setTimeout(shift, delay);

顺便说一句,由于您正在“递归”调用
setTimeout
,您可能需要使用
setInterval

您能提供一些用于此的标记吗?也许把它放在一个JSFIDLE示例中?您能提供一些用于此的标记吗?也许把它放在一个JSFIDLE的例子中?嗨,Roto,使用SetInterval与递归方法相比有很大的性能优势吗?不,这只是一个更明智的选择。嗨,Roto,使用SetInterval与递归方法相比有很大的性能优势吗?不,这只是一个更明智的选择。感谢d1k_,你的答案是正确的。我把这个函数变成了一个全局变量,它起作用了。感谢d1k_,你的答案是正确的。我把这个函数变成了一个全局变量,它工作了。