关于seajs引用的问题

发布于 2022-09-01 06:32:48 字数 648 浏览 26 评论 0

http://www.zjwen.com/
这里面的jquery没有引入成功,导致$无法解释,seach.js和bootstrap.js集体报错。
我是用seajs整合引用的,我在目录下查看,引用成功,而且顺序也是对的。
用bower重装一遍jquery和jquery-ui也没有用,这是什么原因?
图片描述

图片描述

图片描述

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

思慕 2022-09-08 06:32:49

因为bootstrap对jquery是有依赖关系的,bs必须在jquery之后加载。因此需要用如下语句把bs代码包起来,这样就可以保证bs在jquery之后初始化。

define(function (require, exports, module) {
    require('jquery');
    //原来的代码
});

补充一下。不建议楼下的写法。楼下的写法属于原生js的思路,不符合sea的理念。sea的理念是不指定加载顺序,而是指定依赖关系,sea会分析各模块之间的依赖关系,来制定加载顺序,保证正确加载,同时不会出现重复加载。
手动指定顺序无疑是放弃了sea最关键的依赖机制,那又何必引入sea……

情深缘浅 2022-09-08 06:32:49

你在使用seajs.use 时,这几个js是同时请求的,并没有按顺序执行,所以你就无法保证,每次bootstrap是在执行完jquery文件之后。修改意见,一种是把 bootstrap这种依赖别的库的,用回调的方式执行。

seajs.use(['jquery','avalon'],function(){
    seajs.use(['jquery.ui','bootstrap','search','blog'];
})

或者使用 seajs的预加载功能,加载全局的js文件。在seajs config文件中添加:

preload: [
        window.jQuery ? '' : 'jquery'
    ]
洛阳烟雨空心柳 2022-09-08 06:32:49

jquery 默认支持cmd规范

if ( typeof define === "function" && define.cmd ) {
    define( "jquery", [], function() {
        return jQuery;
    });
}

改成amd

if ( typeof define === "function" && define.amd ) {
    define( "jquery", [], function() {
        return jQuery;
    });
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文