Jquery 递归错误太多
我正在一个接一个地展示图片。。但它一次显示两个图像。。。为什么会有这种奇怪的行为Jquery 递归错误太多,jquery,recursion,Jquery,Recursion,我正在一个接一个地展示图片。。但它一次显示两个图像。。。为什么会有这种奇怪的行为 <div Id="BannerDiv"> <img src="images/CIOT flash/im_01.png" alt="image1"/> <img src="images/CIOT flash/im_02.png" alt="image2"/> <img src="images/CIOT flash/im_03.png" alt="image3"/&
<div Id="BannerDiv">
<img src="images/CIOT flash/im_01.png" alt="image1"/>
<img src="images/CIOT flash/im_02.png" alt="image2"/>
<img src="images/CIOT flash/im_03.png" alt="image3"/>
<img src="images/CIOT flash/im_04.png" alt="image4"/>
<img src="images/CIOT flash/im_05.png" alt="image5"/>
</div>
<script type="text/javascript">
jQuery.noConflict();
jQuery(function() {
jQuery('#BannerDiv > :first').show();
setTimeout(rotate,1000);
});
function rotate() {
var c = jQuery('#BannerDiv > :visible').css({ 'z-index': 2 }).fadeOut(2000, function() {
setTimeout(rotate, 1000);
}).next().css({ 'z-index': 1 }).show();
if (c.length == 0) jQuery('#BannerDiv > :first').css({ 'z-index': 1 }).show();
}
</script>
jQuery.noConflict();
jQuery(函数(){
jQuery('#BannerDiv>:first').show();
设置超时(旋转,1000);
});
函数rotate(){
var c=jQuery('#BannerDiv>:visible').css({'z-index':2}).fadeOut(2000,function(){
设置超时(旋转,1000);
}).next().css({'z-index':1}).show();
if(c.length==0)jQuery('#BannerDiv>:first').css({'z-index':1}).show();
}
嘿,伙计们,我遇到了一个非常严重的问题,就是“递归太多,堆栈溢出错误”太多地执行图像循环检查
它被称为函数实例化或闭包、返回值等可以修复它
如果你去这个git回购
然后转到image\u cycles文件夹,html dreimage\u cycler.html将包含有效的代码:)
大家好,请尝试使用setTimeout(函数(){rotate();},1000);我没有检查旋转函数,但请使用代码示例标记(图标101 010)和换行符,以便更清楚地识别问题;)迈克尔-你建议的代码正是same@redsquare:几乎相同,但首选此格式,因为它不会调用“eval”,允许更复杂的逻辑并授予一些漂亮的关闭操作。@Michael:如果他要执行
setTimeout(“rotate()”,1000)
,然后将使用eval()
,但这两个代码段都将函数作为引用传递,因此不使用eval。@Michael在争论之前,你应该先学习Javascript。设置超时(旋转,1000);不会调用eval。旋转是通过引用传递的,就像解决方案的匿名函数一样。