在jQuery文档中调用函数准备就绪
在调试时,我总是使用Firebug并尝试调用函数并显示变量。 但是,当$(document).ready
定义函数或变量时,我不能。
我如何访问这些变量? 我可以输入类似命名空间的内容,例如document.ready.variableName
或者我怎么能看到这个?
先感谢您。
可以通过将它们指定为window
的属性来创建全局变量和函数:
$(function(){ window.foo = function foo() { // … } });
执行该处理程序后,任何地方都应该可以访问foo()
。
我如何访问这些变量?
好吧,你不能。 您在匿名函数中定义的所有内容(例如您在$(document).ready
中使用的$(document).ready
都限定为此匿名函数。 它是私人的,外面无法访问。
所以你可以把你的console.log
放在$(document).ready
如果你需要检查一些在其范围内定义的私有变量。
这就是调试的目的。 在所有主流浏览器(包括IE)中,您可以在javascript代码中设置断点。 完成此操作后,脚本将停止,您可以检查变量。
这里有一些链接:
- http://getfirebug.com/javascript
- http://www.jonathanboutelle.com/how-to-debug-javascript-in-internet-explorer
- 如何在Google Chrome中启动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