Как вызвать функцию внутри $(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