另一个功能完成后执行jquery功能

前端之家收集整理的这篇文章主要介绍了另一个功能完成后执行jquery功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在另一个自定义函数完成后执行自定义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);

所以,你传递一个函数作为参数(回调),如果在返回之前将被调用

另外,this是一篇关于回调的好文章

JSFIDDLE

猜你在找的jQuery相关文章