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

在调试时,我总是使用Firebug并尝试调用函数并显示变量。 但是,当$(document).ready定义函数或变量时,我不能。

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

先感谢您。

可以通过将它们指定为window的属性来创建全局变量和函数:

 $(function(){ window.foo = function foo() { // … } }); 

执行该处理程序后,任何地方都应该可以访问foo()

我如何访问这些变量?

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

所以你可以把你的console.log放在$(document).ready如果你需要检查一些在其范围内定义的私有变量。

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

这里有一些链接:

这取决于你如何在.ready()函数中声明变量。 如果你执行var x = "test" ,那么不,它们只能在ready函数的范围内访问。 如果您执行类似x="test" ,那么它在全局范围内可用,您可以像alert(x);一样访问它alert(x);alert(window.x);

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

在全局范围内声明变量:

例如

  

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

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

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

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

如果你有

 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