function img_load(url)
{
$("#slideshow img").attr("src",url);

$("#slideshow img").load(function(){auto_load_next();});
}function auto_load_next()
{
$("#slideshow_span").html("");
if(file_type == "dir")
{
i >= (str.length-1) ? i = 0 : i++ ;
timer = window.setTimeout(function(){
   img_load(str[i]);
    }
,5000);
}
}求助,这样问什么会重复执行auto_load_next()这个方法如果我把$("#slideshow img").load(function(){auto_load_next();});换成
$("#slideshow img").load(auto_load_next());就不会重复执行,
但是这种情况下,slideshow_span的提示“正在加载图片”就会提前消失,请教高手指点

解决方案 »

  1.   

    $("#slideshow img").load(); 每执行一次 都会向load事件绑定一次处理函数,你这每换一次图片都绑定了一次处理函数,而在绑定的处理函数auto_load_next中又执行了img_load,如此导致多次绑定……
    如果只需执行一次事件处理函数 应该使用one(type,[data],fn)方法 或者再一次绑定之前unbind……
    你要实现的效果是图片循环播放吧  逻辑有点问题,你再优化下……
      

  2.   


    是,就是想实现一个图片循环播放的。在上一张图片加载完毕后定时5秒加载下一张。这样写就是顺利执行。$("#slideshow img").load(auto_load_next())
    但是我第一次进入时的图片正在加载的提示并不是在加载完毕后消失的,而是提前就消失掉了