jQuery全局对象在函数内部不起作用

时间:2010-11-04 09:54:24

标签: javascript jquery

任何人都可以告诉我为什么下面的例子不起作用:

var obj = $('#example');

function examplefunc(){
    obj.hide();
}

虽然第二个工作正常:

function examplefunc(){
    var obj = $('#example');

    obj.hide();
}

我知道差异是显而易见的 - 在第一个例子中我们有全局变量,而在第二个例子中我们有本地变量。但另一个例子表明函数内部可以访问全局字符串var:

var text = "Hello World!"

function examplefunc(){
    alert(text);
}

如何在第一个示例中的函数内部显示全局jQuery对象变量?创建和使用全局jQuery对象有任何限制吗?任何解决方案?

1 个答案:

答案 0 :(得分:1)

我猜想你正在执行这行代码:

var obj = $('#example');

在浏览器将ID为example的元素解析为DOM之前。您可以将<script>元素移动到文档中的#example元素下方,或者可以使用文档就绪事件来解决此问题:

var obj;

$(function () {  // This function is run after the document is parsed and ready
    obj = $('#example');
});

function examplefunc(){
    obj.hide();
}