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) {
        // ...
    });
});

原型文档中提到了这一点:

尝试观察事件的最常见错误之一是尝试在元素存在于 DOM 之前执行此操作。在 dom:loaded 事件或窗口加载事件被触发之前,不要尝试观察元素。

于 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 回答