2011-07-24 151 views
1

我有一个JavaScript脚本,希望每隔几秒就会有多个div淡入/淡出。一次只能看到一个。我创建了以下任务:脚本刚停止

var tmnlSpDelay = 5000; 
var $currentVis = null; 

tmnlFadeIn = function ($re) { 
    $re.css("display", "inline"); 
    $re.fadeIn('slow', ""); 
    $currentVis = $re; 
    setTimeout("tmnlSpinner();", tmnlSpDelay); 
} 

tmnlSpinner = function() { 
    var $random_elem = $('.topcontent').eq(Math.floor(Math.random() * $('.topcontent').length)); 
    if ($currentVis != null) { 
     $currentVis.fadeOut('slow', "function() { tmnlFadeIn($random_elem) }"); 
    } else { 
     tmnlFadeIn($random_elem); 
    } 
} 

$(document).ready(function() { 
    tmnlSpinner(); 
}); 

正如您所看到的,我也在使用jQuery来帮助我。问题出现在运行一次后再次运行tmnlSpinner(除了因为它已经运行一次,currentVis不再为空)。当它在$currentVis上运行fadeOut时,它会停止工作。谷歌浏览器没有给我任何关于任何错误的反馈。有人看到任何问题吗?

回答

8

删除"function() { tmnlFadeIn($random_elem) }"附近的引号。你传递一个字符串,你应该传递一个回调。