2015-03-19 157 views
0

我的index.html頁面上有一個腳本正在加載。它依賴jQuery,bootstrap.js,& metisMenu.js,所有這些都在它之前加載。我無法弄清楚爲什麼這個腳本沒有被立即執行。腳本未執行的即時功能

如果我打開鉻控制檯並運行代碼,它工作得很好,我也沒有看到控制檯中的任何錯誤。

的index.html

... 
<script src="bower_components/jquery/dist/jquery.js"></script> 
<script src="bower_components/angular/angular.js"></script> 
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script> 
<script src="bower_components/metisMenu/dist/metisMenu.js"></script> 
<script src="scripts/custom/sb-admin.js"></script> //This is the script I'm referring to 
</body> 

SB-admin.js

$(function() { 
    $('#side-menu').metisMenu(); 
}); 

缺少什麼我在這裏?我幾乎積極$(function() {...});是準備在jquery中的文檔的簡寫,是嗎?

+1

把'調試器;'作爲你的函數體的第一行,看看是否解釋器bre阿克斯在那裏。 – zerkms 2015-03-19 08:50:00

+0

@zerkms - 良好的通話,只是這樣做,它正在執行。看起來頁面並未實際完成加載...也許是由於角度加載視圖。我將嘗試更改腳本的加載位置,看看是否有幫助。 – theartofbeing 2015-03-19 08:52:36

+0

你知道,就是這樣。我把腳本放在nav(這是一個單獨的視圖),現在它似乎工作得很好。儘管JS認爲document.ready已經發生,但角度技術上還沒有加載該視圖。 – theartofbeing 2015-03-19 08:54:35

回答

0

此腳本適用於nav.html視圖和index.html,因爲我使用的是<div ng-include="'views/nav.html'"></div>該頁面在技術上加載並執行了我的腳本,儘管Angular仍在加載ng-include視圖。

我將腳本移到了nav.html中,現在看起來工作得很好。由於@zerkms提醒我使用debugger;,我應該在第一時間做了O_O

+0

如果使用angular,則需要內部控制器或yourapp.run函數,我相信。 – YOU 2015-03-19 09:02:13

-2

嘗試,而不是

$(document).ready(function() { 

}); 

;-)

,如果你嘗試做一個IIFE (看谷歌) 做

(function() { 

})(); 
+0

$函數接受回調函數:http://api.jquery.com/jQuery/#jQuery3 – 2015-03-19 09:02:34

+0

好吧,我不知道... – bln 2015-03-19 09:04:45