首页 > 解决方案 > javascipt jquery中的简单递归函数不起作用

问题描述

HTML

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
    </head>
    <body>
    <script>
        var i=100;
        $(document).ready(function(){
            function blink(i) {
                if(i==0)
                    return;
                $(".target h1").fadeToggle(1000);
                i=i-1;
                blink(i);
            }
        });
        </script>
        <div class="target"><h1>I am blinking.</h1></div> 
    </body>
</html>

当我使用 for 循环时,它工作得很好,但不知道为什么它在递归函数中没有按预期运行。

标签: javascriptjquery

解决方案


它不会运行,因为您从不调用该函数,您仅在 DOM 准备好后才创建该函数。

const i = 3;
function blink(i) {
    if(i==0)
        return;
    $(".target h1").fadeToggle(1000);
    blink(i-1);
}
$(document).ready(function() {
  blink(i)
});
<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
    </head>
    <body>
        <div class="target"><h1>I am blinking.</h1></div> 
    </body>
</html>


推荐阅读