0

私はおそらく...今ですが、ページが読み込まれたときにこのコードがhello x2をログに記録し、LI要素をクリックしても何もログに記録されないのはなぜですか?クリックされた要素の名前をログに記録する必要があります。「hello」をe.targetに変更すると、HTMLDocumentがログに記録されますか?!

ありがとうございました。

<!DOCTYPE html>
<html>
    <head>

        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <script type="text/javascript">

            window.onload = function(){
                var list = document.getElementById("listan");

                list.addEventListener("touchstart", elementClicked(event), false);
                list.addEventListener("click", elementClicked(event), false);
            }

            function elementClicked(e) {

                console.log("hello");

                if(e.target && e.target.nodeName == "LI") {

                    console.log(e.target.nodeName);
                }

            }

        </script>


        <style>

            * {
                list-style: none;
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }

            li {
                width: 90%;
                background: darkblue;
                color: #eee;
                margin: 10px auto;
                padding: 15px;
                border: 1px solid black;
                text-align: center;
                font-family: calibri;
                cursor: pointer;
            }
            ul {
                background: green;
                padding: 10% 0;
            }

        </style>

    </head>
    <body>
        <ul id="listan">
            <li>apa</li>
            <li>häst</li>
            <li>ko</li>
            <li>elefant</li>
            <li>lejon</li>
            <li>zebra</li>
            <li>myrslok</li>
            <li>grävling</li>
        </ul>
    </body>
</html>
4

1 に答える 1

4

これらの場合:

list.addEventListener("touchstart", elementClicked(event), false);
list.addEventListener("click", elementClicked(event), false);

実際の関数を渡したいelementClickedので、次を使用します。

list.addEventListener("touchstart", elementClicked, false);
list.addEventListener("click", elementClicked, false);
于 2012-11-27T16:14:23.533 に答える