方法一,将js插件cmd模块化(define封装成seajs模块,返回匿名函数,包含插件的源码)。/** * Created with JetBrains PhpStorm. * User: duph * Date: 13-3-11 * Time: 上午9:24 * To change this template use File | Settings | File Templates. */ define(function(require,exports,moudles){ return function(jquery){ (function($) { $.fn.pri= function() { alert($("a").attr("href")) // 代码区域。 }; })(jquery); } })jquery库在总js文件(调用该插件的文件)中加载。通过require("t1/jquery_pligun")()来传递jquery变量(参数) ,保证了jquery在调用js插件模块之前加载/** * Created with JetBrains PhpStorm. * User: duph * Date: 13-3-11 * Time: 上午9:40 * To change this template use File | Settings | File Templates. */define(function (require, exports, moudles) { var $=require("jquery") require("t1/jquery_pligun")($) $(document).ready(function () { $("a").pri() })})补充:SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载。SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的JavaScript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑。SeaJS可以与jQuery这类框架完美集成。使用SeaJS可以提高JavaScript代码的可读性和清晰度,解决目前JavaScript编程中普遍存在的依赖关系混乱和代码纠缠等问题,方便代码的编写和维护。seajs怎么调用jquery的插件
创新互联专注于企业营销型网站、网站重做改版、安庆网站定制设计、自适应品牌网站建设、H5高端网站建设、商城建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为安庆等各大城市提供网站开发制作服务。
seajs加载不符合AMD规范的,要在源代码里加define(function() {//源代码 })
seajs
百科释义
SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载。SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的JavaScript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑。SeaJS可以与jQuery这类框架完美集成。
jQuery 哪个版本?因为 jQuery 提供 AMD 的加载方式(相关代码在源码后面几行),而 seajs 是基于 CMD 规范,所以一般要对 jQuery 进行改造才能被 jQuery 引用,常见的方法是修改 jQuery 源码,在 jQuery 最后几行找到如下代码(以 2.1.4 版本为例):
"function"==typeof definedefine.amddefine("jquery",[],function(){return n});
将其中的“amd”改为“cmd”即可。此时可正常调用 jQuery:
define(function(require, exports, module) {
var $ = require('lib/jquery-2.1.4.min'); // 载入jquery
console.log($); // 返回:function(a,b)
});
seajs.config
alias
别名配置,配置之后可在模块中使用require调用 require('jquery');
paths
设置路径,方便跨目录调用。通过灵活的设置path可以在不影响base的情况下指定到某个目录。
vars
变量配置。有些场景下,模块路径在运行时才能确定,这时可以使用 vars变量来配置。
vars 配置的是模块标识中的变量值,在模块标识中用 {key}来表示变量。
map
该配置可对模块路径进行映射修改,可用于路径转换、在线调试等。
preload
使用preload配置项,可以在普通模块加载前,提前加载并初始化好指定模块。
注:preload中的空字符串会被忽略掉。
注:preload中的配置,需要等到 use 时才加载。比如:
注:preload 配置不能放在模块文件里面:
debug
值为true时,加载器不会删除动态插入的 script 标签。插件也可以根据debug配置,来决策 log 等信息的输出。
base
Sea.js 在解析顶级标识时,会相对 base 路径来解析。
charset
获取模块文件时,script 或 link 标签的charset属性。 默认是utf-8
charset还可以是一个函数:
seajs.use
用来在页面中加载一个或多个模块。seajs.use(id, callback?)
注意:seajs.use 与 DOM ready 事件没有任何关系。如果某些操作要确保在 DOM ready 后执行,需要使用 jquery 等类库来保证。比如
注意:use方法第一个参数一定要有,但是可以是null,也可以是一个变量
seajs.cache
通过 seajs.cache,可以查阅当前模块系统中的所有模块信息。
比如,打开 seajs.org,然后在 WebKit Developer Tools 的 Console 面板中输入 seajs.cache,可以看到:
seajs.reslove
类似require.resolve,会利用模块系统的内部机制对传入的字符串参数进行路径解析。
seajs.data
通过 seajs.data,可以查看 seajs 所有配置以及一些内部变量的值,可用于插件开发。当加载遇到问题时,也可用于调试。