2013-09-25 4 views
1

Мне нужно определить разные функции в моем проекте, и все они полагаются на jQuery, поэтому я должен убедиться, что они находятся внутри функции готовности к документу. Когда я размещаю их там, я получаю ошибку, описанную ниже. Как это можно зафиксировать? Кажется, что jQuery lib включен правильно.Uncaught ReferenceError: checkAvailability не определен

В <head>:

<script src="js/lib/jquery-2.0.3.min.js"></script> 

Javascript:

$(document).ready(function() { 
    function checkAvailability() { 
     ... 
    } 
}); 

При попытке доступа к функции позже, я получаю эту ошибку:

Uncaught ReferenceError: checkAvailability is not defined 
+1

можно дублировать http://stackoverflow.com/questions/1055767/why-can -i-not-define-functions-in-jquerys-document-ready – Greenhorn

+1

Когда вы вызываете 'checkAvailability' –

+0

, лучше поместить функцию вне' doc ready' – Jai

ответ

0

Это вопрос обзорное. ..

$(document).ready(function() { 
    function checkAvailability() { 
     ... 
    } 

    checkAvailability() // can be called here as the definition is in scope 
}); 

checkAvailability() // Can't be called here 

Вместо этого определите функцию вне метода JQuery ...

function checkAvailability() { 
    ... 
} 

$(document).ready(function() { 

    checkAvailability() // can be called here 
}); 
checkAvailability() // Or here 

Думают о функции декларации сферы в том же способом, что и объявления переменных.

0

Я думаю, вы должны поставить все свои действия событий в doc ready обработчика и функций, которые вы можете поместить вне его:

function checkAvailability() { 
    ... 
} 

$(document).ready(function() { 
    your click event should be here.... 
}); 
Смежные вопросы