Maison  >  Questions et réponses  >  le corps du texte

javascript - Problème avec les paramètres passés dans settimeout

<body>
    <p class="nav">
        <ul class="nav_level_1">
            <li><a href="#">首页</a></li>
            <li><a href="#">课程大厅</a>
                <ul class="nav_level_2">
                    <li><p class="corn"></p></li>
                    <li><a href="#">JavaScript</a></li>
                    <li><a href="#">JQuery</a></li>
                </ul>
            </li>
            <li><a href="#">学习中心</a></li>
            <li><a href="#">经典案例</a></li>
            <li><a href="#">关于我们</a></li>
        </ul>
    </p>
    <script type="text/javascript">
    window.onload = function(){
        var nav_level_1 = document.getElementsByClassName("nav_level_1")[0],
            lis_1 = nav_level_1.children;
            for(var i = 0;i < lis_1.length;i++){
                lis_1[i].onmouseover = function(){
                    var ul = this.getElementsByClassName("nav_level_2")[0];
                    addHeight(ul);
                }

            }
    }
    function addHeight(ul){
        var ul_height = ul.offsetHeight;
        ul_height++;
        if(ul_height <= 95){
            ul.style.height = ul_height + "px";
            setTimeout("addHeight('"+ul+"')",10);
        }else{
            return;
        }
    }
    </script>
</body>

Utilisez settimeout pour écrire l'expansion et la contraction du menu secondaire. Passez une fonction avec des paramètres dans settimeout. Je ne sais pas comment la passer. Dans la vidéo, c'est écrit comme ceci : setTimeout("addHeight('"+. ul+"')",10) Mais ce n'est pas normal. Quelle est la raison ?

三叔三叔2663 Il y a quelques jours798

répondre à tous(2)je répondrai

  • 某草草

    某草草2017-07-05 11:08:49

    setTimeout(function () {addHeight(ul)},10);

    répondre
    0
  • 漂亮男人

    漂亮男人2017-07-05 11:08:49

    setTimeout Le premier paramètre de cette fonction peut accepter une fonction ou un morceau de code, s'il s'agit de code, il sera mis dans eval pour exécution.

    La façon dont vous écrivez ici est la façon dont vous écrivez un morceau de code. Veuillez vérifier si les guillemets sont écrits correctement dans une correspondance individuelle. Ou passez aux deux méthodes d'écriture suivantes et cela devrait fonctionner normalement

    setTimeout(function () {
        addHeight(ul)
    }, 10);
    setTimeout(addHeight, 10, ul)

    répondre
    0
  • Annulerrépondre