Я ссылаюсь на JavaScript следующим образом на HTML-странице:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&region=GB"></script>
<script type="text/javascript" src="js/shared.js"></script>
<script type="text/javascript">
$('document').ready(function() {
// In-page code: call some functions in shared.js
});
</script>
Функции, определенные в shared.js, не заключены внутри $('document').ready
. Итак:
-
Можно ли предположить, что функции, определенные в
shared.js
, доступны для кода "внутри страницы"? -
Если я вытащил код внутри страницы в отдельный файл с именем
local.js
(сохраняя его в$('document').ready
), можно ли предположить, что функции, определенные вshared.js
, доступны? -
Наконец, является ли факт, что я не обмениваю shared.js внутри
$('document').ready
проблемой? Я нахожу, что если я завершу это, его функции больше не будут доступны для кода на странице.
Причина вопроса 3 заключается в том, что я сталкиваюсь с этой проблемой: Uncaught TypeError: Свойство... не является функцией - после загрузки страницы
и интересно, связано ли это с тем, как я организовал свой код.
ОБНОВЛЕНИЕ: Спасибо за ответы. Теперь ясно, что использование $('document').ready
в shared.js приведет к удалению этих функций из глобальной области. Однако я просто хочу уточнить исходный вопрос в пункте 3.
Можно ли предположить, что если я сделаю следующее:
- внутри моего кода внутри страницы, загруженного внутри
$('document').ready
, вызовите функцию из shared.js - функция в shared.js относится к jQuery, Google Maps или элементам на моей странице.
проблем не будет?
Другими словами, можно ли предположить, что страница будет загружена к тому времени, когда вызовут функции внутри shared.js
, даже если я не обертываю все в этом файле внутри $('document').ready
?