Rumah  >  Soal Jawab  >  teks badan

javascript - Masalah dengan parameter yang diluluskan dalam 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>

Gunakan settimeout untuk menulis pengembangan dan pengecutan menu sekunder Lulus fungsi dengan parameter dalam settimeout ul+"')",10) Tetapi ini bukan perkara biasa.

三叔三叔2663 hari yang lalu797

membalas semua(2)saya akan balas

  • 某草草

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

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

    balas
    0
  • 漂亮男人

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

    setTimeout Parameter pertama fungsi ini boleh menerima fungsi atau sekeping kod Jika ia adalah kod, ia akan dimasukkan ke dalam eval untuk pelaksanaan.

    Cara anda menulis di sini ialah cara anda menulis sekeping kod Sila semak sama ada tanda petikan ditulis dengan betul dalam surat-menyurat satu-satu. Atau tukar kepada dua kaedah penulisan berikut dan ia sepatutnya berfungsi seperti biasa

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

    balas
    0
  • Batalbalas