2017-10-17 75 views
1

我是新來的jQuery和JavaScript。我在這裏嘗試了一些東西,所以讓我解釋我有什麼:jQuery如何製作一個全球性的功能?或文檔級別?

- 我有幾個獨立的.js文件運行代碼。我無法讓它們在index.html文件中的代碼觸發之前加載。它總是加載jQuery文件(它設置窗口屬性),然後加載index.html,然後加載所有其他.js文件,我列出了jQuery主文件。所以我試圖解決這個問題。

我已經分隔我的javascript到單獨的文件:
- jQuery.js(迷你)//從任何本地或主AJAX源這部作品
- mainpage.js // JavaScript代碼的主要頁面設置。它在那裏作爲需要的元素,目前什麼都沒有。
- mainmenu.js //這個加載mainmenu.html包含mainmenu列表。
- index.html //我想運行的唯一代碼是將".active"類聲明爲home按鈕。我想在這個文件中,所以我可以在我的所有文件中使用相同的通用mainmenu.js和mainmenu.html。
這些都在index.html的頭上。

我的問題是它加載jQuery.js加載,然後立即激發index.html的JavaScript。我不知道如何聲明將設置#home按鈕的函數作爲".active"我可以將它聲明爲文檔級別嗎?我知道我不應該讓它成爲全球......但我甚至不知道該怎麼做?
我目前做到這一點:

defineactive(){ 
    $(mmlist).find("#home").addClass("active"); 

} 

然而,mmlist尚未確定。這被在mainmenu.js宣佈,其裝載的index.html後

,所以我想我的問題是,我可以聲明功能,使能夠在jQuery.js外被叫做?

如果不是,除了使用外部源/應用程序我怎麼能確保JavaScript文件加載順序?我打算以後用更復雜的方式使用這個想法,所以我需要這個工作。

+1

第一個問題,你的js文件'jquery'是否依賴? – Hackerman

+0

是的,他們是。因此我需要jQuery加載FIRST,並且它確實需要。但是我希望我的mainpage.js,mainmenu.js和其他人加載NEXT,並在我的index.html(或其他網頁)末尾調用JavaScript來激發LAST。 – Jexadox

回答

0

嘗試來包裝你的代碼爲:

$(document).ready(function(){ 
// ... Your code ... 
}); 

所以它會通過的時候頁面就會被加載運行。

+0

我總是這樣做。不工作。根據另一篇文章,這等待html加載,但不是所有的資源。嘗試'$(文檔).load(函數(){'本來應該解決這個問題......但我也嘗試過,無濟於事。 – Jexadox