我想在另一个自定义函数完成后执行自定义jquery函数
第一个功能用于创建“打字”效果
第一个功能用于创建“打字”效果
function Typer() { var srcText = 'EXAMPLE '; var i = 0; var result = srcText[i]; setInterval(function() { if(i == srcText.length) { clearInterval(this); return; }; i++; result += srcText[i].replace("\n","<br />"); $("#message").html( result); },100); }
第二个功能发声
function playBGM() { document.getElementById('bgm').play(); }
我一个接一个地呼唤这个功能
Typer(); playBGM();
但是随着文本的打字,声音开始播放。
打印完毕后,我想播放声音。
这是我试过的:http://jsfiddle.net/GkUEN/5/
如何解决这个问题?
解决方法
你应该使用一个回调参数:
function Typer(callback) { var srcText = 'EXAMPLE '; var i = 0; var result = srcText[i]; var interval = setInterval(function() { if(i == srcText.length - 1) { clearInterval(interval); callback(); return; } i++; result += srcText[i].replace("\n","<br />"); $("#message").html(result); },100); return true; } function playBGM () { alert("Play BGM function"); $('#bgm').get(0).play(); } Typer(function () { playBGM(); }); // or one-liner: Typer(playBGM);