#javascript
#javascript
Вопрос:
В моем html у меня есть следующее:
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript" src="js/photos.js"></script>
<script type="text/javascript" src="js/mattes.js"></script>
В common.js У меня есть:
var mattes_openings_xml;
В mattes.js У меня есть:
mattes_openings_xml = "<Openings><opening><item><x>7.75</x><y>1.75</y><width>4.5</width><height>6.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening><opening><item><x>14</x><y>2.25</y><width>3.5</width><height>5.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening><opening><item><x>2.5</x><y>2.25</y><width>3.5</width><height>5.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening></Openings>";
На фотографиях.js У меня есть:
console.log(mattes_openings_xml);
который выводится как неопределенный.
Я не понимаю, почему это происходит, потому что функция (в mattes.js ), который определяет mattes_openings_xml, вызывается перед функцией, которая его выводит (photos.js ).
Ответ №1:
Вы загружаете photos.js до того, как mattes.js , итак, фотографии.js происходит первым. Это только после фотографий.js запускает, что вы определяете mattes_openings_xml .
Комментарии:
1. Как я могу обойти это? Я должен загрузить photos.js до того, как mattes.js
2. Ну и фотографии. js зависит от этого mattes_openings_xml, поэтому логически это должно быть определено в первую очередь. Я не знаю точно, как структурировано приложение, но подумайте о том, чтобы определить его раньше, либо в photos.js или в другом js-файле.
Ответ №2:
Я решил это, вызвав:
function mattes_get_xml()
{
return mattes_openings_xml;
}