Подключение двух файлов Jquery, использующих функции друг друга
Есть два файла. Оба должны быть на jQuery. В обоих файлах функции из одного файла используют функции другого. По сути это разбиение огромного файла с функциями на 3-4 куска, где есть постоянное взаимное сообщение между двумя (или более) файлами.
Понятный упрощённый пример: Файл main.js имеет вид:
$(document).ready(function(){
function hello () {
alert ('Привет!');
}
the_beginning();
});
Эта функция the_beginning() описана в другом файле func.js:
function the_beginning () {
hello ();
}
Это основной смысл того как должна работать программа: несколько сотен функций из нескольких файлов типа func.js указывают какой контент изменить. Они обращаются к файлу main.js, который меняет контент на экране.
Помогите, пожалуйста, с решением данной задачи. Спасибо!.
Ответы (2 шт):
Если напишите функцию вот так:
$(document).ready(function(){
function hello () {
alert ('Привет!');
}
the_beginning();
});
Вы её не вызовете. Сделайте две функции в разных файлах, подключите к странице и попробуйте вызвать в консоли браузера их. Потом уже можно вызывать их как захотите
$(document).ready(function(){
hello(); // возможна ошибка см. ниже
the_beginning();// возможна ошибка см. ниже
});
Что то на подобии вот такого:
//file1.js
function func1(){
console.log('funct1');
}
//file2.js
function funct2(){
console.log('funct2');
}
//main.js
$(document).ready(function(){ // DOM построили но не факт что скрипты наши загрузились лучше $(window).load()
func1();// !!Возможна ошибка если js файлы не загрузились еще
func2();// !!Возможна ошибка если js файлы не загрузились еще
});
В случае вызова функции в функции вам необходимо ждать загрузки всех js файлов
желательно ждать выполнения $(window).load()
Разобрался... Моя ошибка была в следующем: когда я подключал второй файл я также делал в нём определение области jQuery как и в основном, т.е. писал так:
$(document).ready(function(){
// jQuery
});
А нужно было без обращения к документу сразу писать код на jQuery. В общем получился довольно глупый вопрос. Неопытность сделала своё дело. Спасибо за внимание тем, кто пытался помочь. Надеюсь новичкам будет полезно.