2013-11-10 19 views
1

У меня очень длинный внешний JS-файл, который я хочу разделить на 2 отдельных JS-файла. Проблема в том, что file_1.js больше не знает функций file_2.js. Есть ли что-то особенное, о котором я не помню, когда я это делаю.внешние js-файлы не знают друг друга

<script src="js/file_1.js"></script> 
<script src="js/file_2.js"></script> 

глава моего html.

и я загружаю каждое содержимое в документе.

$(function() { some code in both }); 

Приветствия

+0

попробуйте поменять местами теги сценария, объявить file_1.js после file_2.js:

+0

где вы размещаете документ. Поместите его после загрузки обоих файлов. Если все ваши файлы занимаются определением функций (в глобальной области) и не называя ничего немедленно, вы должны быть в порядке. –

ответ

1

Javascript файлы могут только код доступа из файлов, которые загружаются перед ними. В этом примере файл2 может получить доступ к функциям в файле1, но не наоборот.

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

+0

Да, проблема в том, что мой редактор получает так медленно в файле с примерно 3100 строк. Я попытался их изменить, сначала загрузился файл 'file_2.js', но он не помог. – supersize

+0

Эти файлы сжаты? – Alexander

+0

Можете ли вы логически разделить код, чтобы функции в файле2 зависели только от file1, а не наоборот? Это может быть сложно, но это сделает ваш код намного проще в обслуживании. – joews

0

Как указывалось ранее, вызов внешнего js-файла, который объявляет функции перед внешним js, который вызывает функции, является тем, что вам нужно сделать.

Вы пытались вызвать одну из функций внутри дома? Если это не удается, могут возникнуть проблемы с тем, как вы разбили js.

<script src="js/file_2.js"></script> 
<script src="js/file_1.js"></script> 

против

<script src="js/file_2.js"></script> 
<script> 
    $(document).ready(function(){ 
     someFunctionWithinFile_2(); 
    }); 
</script> 
Смежные вопросы