如何调用$(document).ready中的函数

时间:2013-07-10 09:33:59

标签: jquery debugging firebug

我正在尝试调试使用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(),它可以正常工作。

如何从控制台调用验证?

3 个答案:

答案 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