Как вызвать функцию внутри $(документ).готовый

Im пытается отладить мое веб-приложение, которое использует jQuery.

в firebug im вызывающие функции внутри $(документа).готовый..

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

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

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

в консоли firebug я набираю validate() и он говорит, что это не функция

если я типа val() он работает нормально.

как вызвать validate из консоли ?

3 ответов


вы не вызываете функцию, вы просто определение функции.

правильный подход заключается в определении функции вне document.ready и назвать его внутрь:

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

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

другой вариант:self invoke такая функция:

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

код validate функция локальна для функции, которую вы передали jQuery ready обработчик.

Если вы:

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

вы сможете получить доступ из консоли. Но не рекомендуется загрязнять глобальную область, если это не только для отладки.


ну, есть ли причина, по которой вам нужна эта функция внутри документа? только внутри этих скобок (области) будет существовать функция. просто переместите его, или все это только внутри документа.готов