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

时间:2010-12-15 00:29:35

标签: javascript mootools

我用mootools做了这个:

$("fox").addEvent("click", function(){
alert("clicked");
});

和html:

<p id="fox">A</p>

现在,如果我在这里尝试http://jsfiddle.net/5uJ54/3/,它可以工作,但是如果我在浏览器中尝试它并且所有代码都没有,我会在firebug中得到它:

$("fox") is null

并且它在chrome中也不起作用。

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

3 个答案:

答案 0 :(得分:7)

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

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

要使代码在您的文档中起作用,您可以监听此MooTools事件,该事件将在文档准备好后触发: http://mootools.net/docs/core/Utilities/DOMReady

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

window.addEvent('domready', function() {
    $("fox").addEvent("click", function(){
        alert("clicked");
    });
});

答案 1 :(得分:0)

你确定mootools正在加载,而你正在将javascript置于某种domready事件中吗? (不确定mootools的版本是什么)。

答案 2 :(得分:-1)

因为你没有在任何地方包含mootools javascript库吗?