为什么变量在函数外声明为null?

nop*_*ope 1 javascript mootools

我用mootools做了这个:

$("fox").addEvent("click", function(){
alert("clicked");
});
Run Code Online (Sandbox Code Playgroud)

和HTML:

<p id="fox">A</p>
Run Code Online (Sandbox Code Playgroud)

现在,如果我在这里尝试它http://jsfiddle.net/5uJ54/3/,它的工作原理,但如果我在浏览器中尝试它,这就是它没有的所有代码,我在firebug得到这个:

$("fox") is null
Run Code Online (Sandbox Code Playgroud)

它也不适用于铬.

为什么会这样?我也尝试将所有内容放在一个函数中,但它仍然无法正常工作.

mik*_*ike 7

如果您在文档准备好之前尝试选择元素,那么您将获得null.

您拥有的JSFiddle沙箱设置为在加载文档后运行.

要获得代码的文档中工作,你可以听,这将文档后触发该事件MooTools的准备: http://mootools.net/docs/core/Utilities/DOMReady

你的例子最终会看起来像这样:

window.addEvent('domready', function() {
    $("fox").addEvent("click", function(){
        alert("clicked");
    });
});
Run Code Online (Sandbox Code Playgroud)