*
*author Benjamin
*date 2013-11-24
*content seajs+easyui使用
*/
/**
* 首先来看看在seajs中jquery和jquery插件如何使用
*/
1.jquery.js
define(function(require,exports,module)){
//原jquery.js代码
module.exports = $.noConflict(true);
}
2.jquery.combobox.js
依赖关系如下:
jquery.combobox.js 依赖 jquery.combo.js
jquery.combo.js 依赖 jquery.panel.js、jquery.validatebox.js
jquery.validatebox.js 依赖 jquery.tooltip.js
那怎么封装jquery.combobox.js及依赖的插件呢?
1)jquery.combobox.js
define(function(require,exports,module){
return function($){
require("plugins/jquery.combo");
//插件代码
}
});
2)jquery.combo.js
define(function(require, exports, module) {
return function($) {
require("plugins/jquery.validatebox")($);
require("plugins/jquery.panel")($);
//原jquery.combo.js代码
}
});
3)jquery.validatebox.js
define(function(require, exports, module) {
return function($) {
require("plugins/jquery.tooltip")($);
//原jquery.validatebox.js代码
}
});
4)jquery.panel.js、jquery.tooltip.js
define(function(require, exports, module) {
return function($) {
//原jquery.validatebox.js/jquery.panel.js代码
(function($){
......
})(jQuery);
//注意此处要把jQuery改为$,要不就在init.js中把实参改为jQuery
}
});
/**
* 相关实例
*/
a)index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="themes/default/easyui.css"/>
<link rel="stylesheet" type="text/css" href="themes/icon.css"/>
</head>
<body>
<select id="sel_refresh">
<option value="0">不刷新</option>
<option value="60">1分钟</option>
<option value="120">2分钟</option>
</select>
<script type="text/javascript" src="sea.js"></script>
<script type="text/javascript">
seajs.use("./init",function(init){
init.initPage()
});
</script>
</body>
</html>
b)init.js
define(function(require,exports,module){
//加载依赖模块
var $ = require("jquery");
require("./plugins/jquery.combobox")($);
//私有属性和方法
var name = "Benjamin_private";
var setName = function(name){
console.log("My name is "+ name);
}
//公有属性和方法
module.exports = {
name : "Benjamin_public"
initPage : function(){
$("#sel_refresh").combobox({
width:150,
onSelect:function(rec){
console.log(rec);
}
});
},
setName : function(name){
console.log("My name is "+ name);
}
}
});
c)jquery.combobox.js及依赖插件代码参见上面
/**
* 问题
*/
a)使用seajs+easyui 时 easyui框架的 jquery.parse.js 基本上每个控件都有用到,所以建议每个控件添加依赖时都增加这个依赖;更改这个文件时要注意,其文件中两个闭包都要更改实参。
b)避免缓存设置
可以在链接后加个时间戳,也可以直接配置
seajs.config({
debug : 2;
});
c)其中的各控件样式文件在此实例中没有设置按模块加载,自己可设置
d)其他问题后续总结补充...
分享到:
相关推荐
基于 JFinal2.0 + Bootstrap + SeaJS + FullC的终极排班管理系统对人员信息的维护,增删改查等,对人员进行分组,对不同的任务或者部门人员分组来管理排班,分组支持增删改查等,排班班次设置,支持自定义班次名称、...
毕业设计,基于SpringBoot+seajs+MySql开发的毕业设计管理系统,内含Java完整源代码,数据库脚本 本系统采用了B/S架构,即浏览器/服务器模式(Brower/Server),通过浏览器和服务器进行交互,浏览器对数据进行处理...
主要是做了一个基于node环境中,seajs的配置以及一些实例和利用grunt进行资源的打包压缩合并的构建
widget seajs + jquery 简单的widget开发
knockout seajs .net中实战应用
seajs-grunt 基于seajs的模块化方案,配合grunt构建配置 主要用到了grunt的grunt-cmd-transport、grunt-cmd-concat、grunt-contrib-uglify、grunt-contrib-copy 这几个模块,实现模块依赖分析,模块合并,代码压缩等...
本项目基于MVC4、Entity Framework 5.0 实体框架、Autofac IOC容器、Postsharp AOP切面框架、AutoMapper 对象映射框架、javascript模块化管理框架 Seajs、DWZ UI界面框架 等 构建了一个代码结构优秀的开发框架,...
###nodejs express+ socket.io + angularjs + seajs + android or ios实时聊天 测试:karma angular-scenario e2e 构建:yeoman grunt和bower user: uploadImage regUser updateUser login logout contact listUser ...
终极排班管理系统,改变传统的排班模式! 使用技术: JFinal2.0 + Bootstrap + SeaJS + FullCalender.js(源码修改二次开发) 数据库:MySQL
IE8 + Angularjs 1.2.* + Seajs +ng-route DEMO angular 1.2.7 支持IE8+ 如需支持IE7 需要关闭 $sceProvider angular.module('ie7support', []).config(function($sceProvider) { $sceProvider.enabled(false); ...
vue+seajs实现按路由来异步按需加载模板和组件架构
backbone+seajs实战
seajs js模块化的高富帅..有兴趣的朋友可以关注下.. jquery不说了 相关插件 Jquery powerFloat 浮动层插件 artDialog 4.1.2 个人修改版 加了最大最小化 smartMenu 右键 我先说说我研究到的层度 (不考虑IE系)...
js简单应用的课程设计,主要运用多种简单js,知识点:JavaScript+jQuery+Ajax+正则表达式+面向对象+js插件+代码性能优化+github+seaJs+requireJs+gulp 通过学习JavaScript基础变量、运算符、数据类型,函数,DOM...
SeaJS Web 端的js 模块加载器
seajs-2.3.0.zip
自己在公司需要使用seajs,就学习了seajs写了个手册和demo,欢迎阅读。
seajs下载,包含自己总结的用法和规范
seajs-2.2.0源码
seajs源码