How to call a function inside $(document).ready

烂漫一生 提交于 2019-12-12 01:14:30

问题


Im trying to debug my web app that uses jQuery.

In firebug im calling functions inside the $(document).ready..

 function val() { console.log('validated outside doc.ready'); }
 $(document).ready(function()
 {

    console.log('document ready...');

    function validate() { console.log('validated!'); }
 }

In firebug console I type validate() and it says its not a function

If i type val() it works fine.

How do i call validate from the console ?


回答1:


You are not calling a function like that, you just define the function.

The correct approach is to define the function outside document.ready and call it inside:

// We define the function
function validate(){
  console.log('validated!');
}

$(document).ready(function(){
  // we call the function
  validate();
});

Another option is to self invoke the function like that:

$(document).ready(function(){
   // we define and invoke a function
   (function(){
     console.log('validated!');
   })();
});



回答2:


Your validate function is local to the function you've passed to the jQuery ready handler.

if you do:

window.validate = function(){ /*....*/ };

you will be able to access from console. But it's not good practice to pollute the global scope unless it's just for debugging.




回答3:


well, is there any reason you'd need that function inside document ready? only inside those brackets (scope) the function will exist. just move it out, or all it only inside document.ready



来源:https://stackoverflow.com/questions/42764131/displaying-custom-message-on-net-ajax-post

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!