settimeout之后的jquery运行函数

我有一个运行良好的动画,但现在我试图通过淡出文本然后运行另一个函数来反转这个动画。 在加载此页面后,以下运行…

$(document).ready(function () { dream(); setTimeout(runul(), 8000, function() {showVideo()}); }); 

梦想function在身体背景上创造气泡。

  function dream() { //calculating random color of dream if (animation_stopped) return; var color = 'rgb(' + Math.floor(Math.random() * 255) + ',' + Math.floor(Math.random() * 255) + ',' + Math.floor(Math.random() * 255) + ')'; //calculating random X position var x = Math.floor(Math.random() * $(window).width()); //calculating random Y position var y = Math.floor(Math.random() * $(window).height()); //creating the dream and hide drawingpix = $('').attr({ class: 'drawingpix' }).hide(); //appending it to body $(document.body).append(drawingpix); //styling dream.. filling colors.. positioning.. showing.. growing..fading drawingpix.css({ 'background-color': color, 'border-radius': '100px', '-moz-border-radius': '100px', '-webkit-border-radius': '100px', top: y - 14, //offsets left: x - 14 //offsets }).show().animate({ height: '500px', width: '500px', 'border-radius': '500px', '-moz-border-radius': '500px', '-webkit-border-radius': '500px', opacity: 0.1, top: y - 250, //offsets left: x - 250 }, 3000).fadeOut(2000); //Every dream's end starts a new dream window.setTimeout('dream()', 200); } 

当梦函数运行时,我运行runul()函数,开始输入文本。

  function runul() { jQuery("#ticker").ticker({ cursorList: " ", rate: 50, delay: 18000 }).trigger("play").trigger("stop"); // Trigger events jQuery(".stop").click(function () { jQuery("#ticker").trigger("stop"); return false; }); jQuery(".play").click(function () { jQuery("#ticker").trigger("play"); return false; }); } 

当runul()动画完成后,我想运行showVideo函数。 我希望此函数淡出键入的文本,然后淡化包含在div中的iframe。

  function showVideo() { $('#divFade').fadeOut(3000); animation_stopped = true; $(typetext).css('color', 'black'); $("body").animate({ backgroundColor: "#ffffff" }, 3000); $('#divVideos').fadeIn('slow'); // Animation complete. $("#iVideos").prop('src', 'Videos/Quick Start Intro_player.html'); return false; }; 

如何在runul()完成后运行showVideo?

非常感谢你的帮助

您应该将’showVideo’作为回调函数传递:

 setTimeout( function() {runul(showVideo)},8000); function runul(callback) { jQuery("#ticker").ticker({ cursorList: " ", rate: 50, delay: 18000 }).trigger("play").trigger("stop"); // Trigger events jQuery(".stop").click(function () { jQuery("#ticker").trigger("stop"); return false; }); jQuery(".play").click(function () { jQuery("#ticker").trigger("play"); return false; }); callback(); } 

您还可以使用jquery defferred和具体的when函数