2015-03-19 112 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