Как вызвать функцию внутри $(document).ready

Я пытаюсь отладить мое веб-приложение, которое использует 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(), он отлично работает.

Как я могу вызвать подтверждение с консоли?

Ответы

Ответ 1

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

Правильный подход состоит в том, чтобы определить функцию вне 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!');
   })();
});

Ответ 2

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

если вы выполните:

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

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

Ответ 3

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