2016 使用seajs时如何模块化jquery

【前言】

最近接触 seajs ,遇到了下面问题:

  var $ = require('jquery');  // error:$为null

【找原因】

1. 调试了一下,发现jquery的路径没有问题,但是$却是null,初步判断require()这个函数没有理解清楚。

2. 百度了一下,发现是seajs中 require() 的参数一定要是遵循cmd规范的文件, 而jquery正常都是没有模块化的。

3.回到了我们今天的重点:如何模块化jquery?


【解决过程】

1. 参照一些博客文章模块化jquery,但是还有一些问题。(文章中的seajs和jquery版本都是以前的,所以可能有些差异)

2. 尝试了很多种方法,最后成功了2种方法:模块化jquery。 

3. 方法介绍:

版本:seajs.2.3.0.js;   jquery-2.2.0.js

【方法一】

在jquery源码末尾中,修改成如下:

if ( typeof define === "function") {
	define(function() {
		return jQuery;
	} );
}

说明:1. if()中只有一个判断了 2. define()中只有一个参数,前面还有两个参数容易出错,官网例子也推荐用一个工厂函数就可以了。

【方法二】

在jquery源码外加如下代码:

define(function(){
  //jquery code
  // ...

  return $.noConflict(true);
});


</pre><pre name="code" class="html">

【结束语】

经过测试,以上两种方法都能够在seajs中正常加载jquery,两种方法的最终目的都是为了模块化jquery,暴露出一个对象给外面调用。查看了网上很多资料,经过整理后这两种方法在当前版本可用。

ps:刚入前端,请多多指教。


参考文章:

http://blog.csdn.net/it_man/article/details/7782623   //seajs使用指南
http://blog.csdn.net/uikoo9/article/details/37995129  //seajs添加jquery,其中一种实现方式
http://blog.csdn.net/lfsf802/article/details/26758305  //seajs模块编写


 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值