Prototypejs观察函数抛出错误

时间:2012-06-22 09:42:19

标签: javascript prototypejs

我有这行代码,但它会抛出错误。代码有什么问题?

<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>

2 个答案:

答案 0 :(得分:0)

您尝试绑定事件处理程序的元素在执行代码时不存在于DOM中。将它包装在DOM ready事件处理程序中:

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

Prototype docs

中提到了这一点
  

尝试观察事件的最常见错误之一就是尝试做   在元素存在于DOM之前。不要试图观察元素   直到dom:loaded事件或窗口加载事件被触发之后。

答案 1 :(得分: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>
相关问题