2017-10-07 40 views
0

我有一個問題,在第一個JS中定義的變量(先載入第一個)在稍後導入的JS中無法識別。未找到外部JS變量 - 訂單正確

首先,加載順序(在調試器驗證:#第一1負載):

<!-- Scheduler JS, #1 --> 
<script src="codyhouse-schedule-template/js/scheduler.js"></script> 
<!-- Custom JS, #2 --> 
<script type="text/javascript" src="js/app.js"></script> 

scheduler.js有以下幾點:

jQuery(document).ready(function($){ 
    // some functions, we skip those... 

    var schedules = $('.cd-schedule'); 
    var objSchedulesPlan = [], 
     windowResize = false;  
}); 

應用.js有以下幾種

jQuery(document).ready(function($){ 
    // some functions, we skip those... 

    alert('objSchedulesPlan = ' + objSchedulesPlan); 
}); 

錯誤 objSchedulesPlan沒有定義

螢火蟲表明上文獻就緒,scheduler.JS先行,並限定這些瓦爾;那麼app.JS排在第二位,並且找不到這些變量。我錯過了什麼嗎?

+1

因爲它沒有全局定義!把'var objSchedulesPlan = []'放在jquery ready函數之外 – Legends

+0

但是我認爲所有的document-onReady都被合併了嗎?或者你的意思是一個var必須在jQuery(document).ready(function(..)之外定義? –

+0

準確地說,它必須在它之外定義。 – Legends

回答

1

objSchedulesPlan是一個局部變量。在全球範圍內宣佈。

var objSchedulesPlan; 

jQuery(document).ready(function($){ 
    // some functions, we skip those... 

    var schedules = $('.cd-schedule'); 

    objSchedulesPlan = [], 
     windowResize = false;  
}); 
1

定義您的變量在$(document).ready以外是全局定義的。每個$(document).ready僅限於其自己的空間

var objSchedulesPlan 
    jQuery(document).ready(function($){ 
     var schedules = $('.cd-schedule'); 
     objSchedulesPlan = [], 
     windowResize = false;  
    });