0

onload ページイベントでの自動選択に JavaScript を使用している jsp ページと、いくつかのコンテンツを含むさまざまな div タグを動的に展開するための jQuery があります。

したがって、問題はsetSelection、スクリプトタグのページの下部にあるメソッドの呼び出しと、呼び出された js メソッドにある jQuery メソッドがtoggleIE8 でまったく機能しないことです。ただし、Chrome、Firefox、および IE9 では問題なく動作します。

私はこの問題を何度もグーグルで検索しましたが、役立つものは何も見つかりません。IE8 のデバッガー ツールで表示される唯一のエラーは、「オブジェクトが必要です」と「式が必要です」です。

コードは次のとおりです。

                        <html>
        <head>
            <script type="text/javascript" src="jquery-1.7.2.js"></script>
            <script type="text/javascript">
                function toggle(el)
                {
                    var val = el.options[el.selectedIndex].value;
                    if (val == "1")
                    {
                        document.getElementById("2").style.display = "none";
                        $("#1").slideToggle(250);
                    }
                    else if (val == "2")
                    {
                        document.getElementById("1").style.display = "none";
                        $("#2").slideToggle(250);
                    }
                    else if (val == "0")
                    {
                        document.getElementById("1").style.display = "none";
                        document.getElementById("2").style.display = "none";
                    }
                }
                function setSelection(selection) 
                {
                    //Here we make dynamic selection of the combo box
                    var selct = document.getElementById("sel");
                    selct.options[selection].setAttribute("selected", "selected");
                    toggle(selct);
                }
            </script>
        </head>
        <body>

        <select name="mySel" id = "sel" onchange="toggle(this);">
            <option value="0">Zero</option>
            <option value="1">One</option>
            <option value="2">Two</option>
        </select>
        <div id="1" style="border:1px;">
        </div>
        <div id="2" style="border:1px;">
        </div>
        <script>
            setSelection(0);
        </script>
        </body>
        </html>

誰か助けてくれませんか?

4

1 に答える 1

1

コードをドキュメントレディ関数でラップして試してください。

jQuery(document).ready(function($) {
    // Stuff to do as soon as the DOM is ready. Use $() w/o colliding with other libs;
});
于 2012-07-20T17:06:06.407 に答える