小编LdT*_*ger的帖子

jQuery UI API无法正确加载LABjs

我最近改用了LABjs在SharePoint Webparts(2010)中加载脚本.这样做的主要原因是,如果将多个Web部件添加到同一页面,则不要多次向页面加载相同的库(如jqueryjquery.ui).这样,他们每个人都可以单独指定其依赖关系,而无需警告已经或可能添加了哪些其他Web部件.

两者LABjs和另一个包含脚本链的文件都是通过<script>Webpart标记底部的标记加载的.

10次​​中有9次,Javascript执行没有任何问题.不过,每隔一段时间,就会抛出一个异常,说明TypeError: $(...).button is not a function.

即使页面上只有一个Webpart并且似乎与浏览器无关(在页面强制使用FireFox 38,Chrome 43和IE 11/IE 8中测试),也会发生这种情况.

链看起来像这样(为清晰起见编辑):

$LAB.setOptions({Debug:true})
.script("../js/jquery-1.11.3.min.js").wait()
.script("../js/jquery-migrate-1.2.1.min.js").wait()
.script("../js/jquery-ui.min.js").wait()
.script("../js/core.js")
.wait(function(){ 
    jQuery(function() {
        init();     // The jQuery UI .button() call
    });
})
.script("../js/jquery.multiselect.min.js").wait()
.script("../js/jquery.multiselect.filter.min.js")
.script("../js/rte/jquery.rte.js").wait()
.script("../js/rte/jquery.rte.tb.js")
.script("../js/rte/jquery.ocupload-1.1.4.js")
.wait(function () {
    jQuery(function() {
        // Some DOM-dependant code lives here
    });
});
Run Code Online (Sandbox Code Playgroud)

这是调试器输出的内容(为清晰起见,也进行了编辑):

start script load (ordered async): ../js/jquery-1.11.3.min.js
start script load (ordered async): ../js/jquery-migrate-1.2.1.min.js
start script load (ordered async): …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui sharepoint-2010 labjs

13
推荐指数
1
解决办法
652
查看次数

标签 统计

javascript ×1

jquery ×1

jquery-ui ×1

labjs ×1

sharepoint-2010 ×1