0

このコード行がありますが、エラーがスローされます。コードの問題は何ですか?

<html>
    <head>
        <script src="http://prototypejs.org/javascripts/prototype.js" type="text/javascript"></script>
        <script type="text/javascript">

            Event.observe('target', 'click', function(event) {
                // ...
            });

        </script>   
    </head>
    <body>
        <p id='target'>Click me!</p>
    </body>
</html>
4

2 に答える 2

0

イベント ハンドラーをバインドしようとしている要素は、コードの実行時に DOM に存在しません。DOM 対応のイベント ハンドラーでラップします。

document.observe("dom:loaded", function() {
    Event.observe('target', 'click', function(event) {
        // ...
    });
});

これはプロトタイプのドキュメントで言及されています:

イベントを監視しようとする最も一般的なエラーの 1 つは、要素が DOM に存在する前にそれを実行しようとすることです。dom:loaded イベントまたは window load イベントが発生するまで、要素を観察しようとしないでください。

于 2012-06-22T09:47:17.813 に答える
0

の後にスクリプトをロードします

タグが読み込まれます。この方法では、dom:loaded イベントを検出する必要はありません。:)

<html>
    <head>
        <script src="http://prototypejs.org/javascripts/prototype.js" type="text/javascript"></script>

    </head>
    <body>
        <p id='target'>Click me!</p>
          <script type="text/javascript">

                Event.observe('target', 'click', function(event) {
                    alert('clicked me');
                });

            </script>
    </body>
</html>
于 2012-06-22T09:56:42.773 に答える