javascript - Problème avec les paramètres passés dans settimeout
三叔
三叔 2017-07-05 11:06:49
0
2
839
<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 ?

三叔
三叔

répondre à tous(2)
某草草
setTimeout(function () {addHeight(ul)},10);
漂亮男人

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)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal