Javascript 破碎的四边形动画提要
嗨 由于某些原因,函数“shift()”没有根据firebug控制台选项卡正确定义。我直接从一个教程中得到了这个,不确定我在这里做错了什么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;
//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_,你的答案是正确的。我把这个函数变成了一个全局变量,它工作了。