在调试时,我总是使用Firebug并尝试调用函数并显示变量。但是,当$(document).ready
。{/ p>中定义函数或变量时,我无法做到
如何访问这些变量?我可以输入类似命名空间的内容,例如document.ready.variableName
或者我如何看到它?
提前谢谢。
答案 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