Execute jQuery function after another function completes

前端 未结 4 2104
伪装坚强ぢ
伪装坚强ぢ 2020-11-29 00:30

I want to execute a custom jQuery function after another custom function completes
The first function is used for creating a \"typewriting\" effect

func         


        
4条回答
  •  余生分开走
    2020-11-29 01:10

    You should use a callback parameter:

    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", "
    "); $("#message").html(result); }, 100); return true; } function playBGM () { alert("Play BGM function"); $('#bgm').get(0).play(); } Typer(function () { playBGM(); }); // or one-liner: Typer(playBGM);

    So, you pass a function as parameter (callback) that will be called in that if before return.

    Also, this is a good article about callbacks.

    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", "
    "); $("#message").html(result); }, 100); return true; } function playBGM () { alert("Play BGM function"); $('#bgm').get(0).play(); } Typer(function () { playBGM(); });
    
    

    JSFIDDLE

提交回复
热议问题