在jQuery文档中调用函数准备就绪

时间:2011-11-15 19:41:44

标签: javascript jquery

在调试时,我总是使用Firebug并尝试调用函数并显示变量。但是,当$(document).ready。{/ p>中定义函数或变量时,我无法做到

如何访问这些变量?我可以输入类似命名空间的内容,例如document.ready.variableName或者我如何看到它?

提前谢谢。

7 个答案:

答案 0 :(得分:18)

可以通过将它们指定为window

的属性来创建全局变量和函数
$(function(){
    window.foo = function foo() {
        // …
    }
});
执行该处理程序后,任何地方都应该可以访问

foo()

答案 1 :(得分:2)

  

如何访问这些变量?

嗯,你不能。您在匿名函数中定义的所有内容(例如您在$(document).ready中使用的内容)都限定为此匿名函数。它是私人的,外面无法访问。

因此,如果您需要检查其范围中定义的某个私有变量,您可以将console.log置于$(document).ready内。

答案 2 :(得分:2)

这就是调试的目的。在所有主流浏览器(包括IE)中,您可以在javascript代码中设置断点。完成此操作后,脚本将停止,您可以检查变量。

这里有一些链接:

答案 3 :(得分:1)

这取决于您在.ready()函数中声明变量的方式。如果你执行var x = "test",那么不,它们只能在就绪函数的范围内访问。如果您执行x="test"之类的操作,则可以在全局范围内使用,您只需访问alert(x);alert(window.x);

您可能不希望在ready函数中定义变量,但是如果您尝试在ready函数之外使用它们。

答案 4 :(得分:1)

在全局范围内声明变量:

E.g。

<script type="text/javascript">
var globalVar = null;
$(document).ready(
function() {
     globalVar = "This is the value";
}
);

function TestFunc() {
    alert(globalVar);
}
</script>

在这里,如果您在页面加载后随时调用TestFunc(),您将看到ready()函数中指定的值。

答案 5 :(得分:0)

我不确定我是否完全理解这个问题,但你不能只是在文档之外声明变量吗?

var a = "bar";

$(document).ready(function(){
    a = "foo";
});

如果您使用的是firebug,您应该可以在文档准备就绪中调用console.log,这可能会为您提供所需内容。

答案 6 :(得分:0)

如果你有

var x = "foo"
$(document).ready(function(){
  alert(x); // foo
});

您可以在任何地方看到x变量,但是如果您在文档中声明了变量y它只能在文档准备就绪中访问:

var x = "foo"
$(document).ready(function(){
  alert(x); // foo
  var y = "bar"
  alert(y); // bar
});
alert(y); // undefined