我正在尝试调试使用jQuery.
在firebug im中调用$(document).ready ..
中的函数 function val() { console.log('validated outside doc.ready'); }
$(document).ready(function()
{
console.log('document ready...');
function validate() { console.log('validated!'); }
}
在firebug控制台中,我输入validate()
,它说它不是函数
如果我输入val()
,它可以正常工作。
如何从控制台调用验证?
答案 0 :(得分:53)
你没有调用这样的函数,你只需定义函数。
正确的方法是在document.ready
之外定义函数并在其中调用:
// We define the function
function validate(){
console.log('validated!');
}
$(document).ready(function(){
// we call the function
validate();
});
另一种选择是自我调用这样的功能:
$(document).ready(function(){
// we define and invoke a function
(function(){
console.log('validated!');
})();
});
答案 1 :(得分:7)
您的validate
函数是您传递给jQuery ready
处理程序的函数的本地函数。
如果你这样做:
window.validate = function(){ /*....*/ };
您将可以从控制台访问。但是污染全局范围并不是一个好习惯,除非它只是用于调试。
答案 2 :(得分:1)
嗯,你有什么理由需要在文件准备好的内容中使用该功能吗? 只有在那些括号(范围)内,该函数才会存在。只需将其移出,或仅将其全部移出document.ready