快速构建自己的第一个SeaJS
2016-04-12 18:30
585 查看
SeaJS在这里就不过多的介绍,关于SeaJS请参考官网:http://seajs.org
本实例功能说明:为页面动态加载一些button,同时为每一个button绑定click事件。
下载地址:http://seajs.org/docs/#downloads
1.2 下载jquery(本实例使用jquery-1.12.3.js)
下载地址:http://jquery.com/download/
如下所示为本文的js目录结构(至于为何jquery-1.12.3.js放在”/jquery”目录下,请参考http://blog.csdn.net/ouyang111222/article/details/51131690或者http://blog.csdn.net/iamduoluo/article/details/46457685):
![](https://oscdn.geek-share.com/Uploads/Images/Content/201604/4959a947005df013dd934ba2076835af)
2.2 导入sea.js
2.3 config的配置
本文将seajs的config放在config.js文件中
其具体的配置如下:
其中main.js为入口模块,main.js如下:
events.js如下:
其中hashmap.js中定义了一个数据结构hashmap,如下:
本实例功能说明:为页面动态加载一些button,同时为每一个button绑定click事件。
1 准备工作
1.1 下载sea.js下载地址:http://seajs.org/docs/#downloads
1.2 下载jquery(本实例使用jquery-1.12.3.js)
下载地址:http://jquery.com/download/
2 SeaJS的基本配置
2.1 目录结构如下所示为本文的js目录结构(至于为何jquery-1.12.3.js放在”/jquery”目录下,请参考http://blog.csdn.net/ouyang111222/article/details/51131690或者http://blog.csdn.net/iamduoluo/article/details/46457685):
2.2 导入sea.js
<script type="text/javascript" src="js/seajs/sea.js"></script>
2.3 config的配置
本文将seajs的config放在config.js文件中
<script type="text/javascript" src="js/index/config.js"></script>
其具体的配置如下:
/** * Set configuration */ seajs.config({ //shim plugins plugins: ['shim'], base: "./js/", /*"./"表示当前路径*/ alias: { "jquery": "jquery/jquery-1.12.3.js" }, preload: ["jquery"], }); seajs.use("./js/index/main");
其中main.js为入口模块,main.js如下:
define(function(require) { var Events = require('./events'); //加载依赖events.js var event = new Events('#container'); event.addClick(); });
events.js如下:
define(function(require, exports, module) { var $ = require('jquery');//加载依赖jquery var HashMap = require('./hashmap');//加载依赖hashmap.js function Events(id){ this.id = $(id); this.init(); } Events.prototype = { init:function(){ var map = new HashMap(); map.put(1,"button1"); map.put(2,"button2"); map.put(3,"button3"); for(var i=1;i<map.size()+1;i++){ this.id.append("<button type='button' id='"+map.get(i)+"'>Click Me!</button>"); } return this; }, addClick:function(){ var children = this.id.children(); for (var i = 0; i < children.length; i++) { (function(){ var p = i; children[i].onclick = function() { alert("the index is "+p+" while the id is"+this.id); } })(); } return this; } } module.exports = Events;//module.exports 提供整个接口 });
其中hashmap.js中定义了一个数据结构hashmap,如下:
define(function(require, exports, module) { HashMap = function(){ var size = 0;// Map大小 var entry = new Object();// 对象 // Map的存put方法 this.put = function(key, value) { if (!this.containsKey(key)) { size++; entry[key] = value; } } // Map取get方法 this.get = function(key) { return this.containsKey(key) ? entry[key] : null; } // Map删除remove this.remove = function(key) { if (this.containsKey(key) && (delete entry[key])) { size--; } } // 是否包含Key this.containsKey = function(key) { return (key in entry); } // 是否包含Value this.containsValue = function(value) { for ( var prop in entry) { if (isObjectValueEqual(entry[prop], value)) { return true; } } return false; } // 所有的Value this.values = function() { var values = new Array(); for ( var prop in entry) { values.push(entry[prop]); } return values; } // 获取Value By key this.getValueByKey = function(key) { if (this.containsKey(key)) { return entry[key]; } return null; } // 所有的 Key this.keys = function() { var keys = new Array(); for ( var prop in entry) { keys.push(prop); } return keys; } // Map size this.size = function() { return size; } // 清空Map this.clear = function() { size = 0; entry = new Object(); } // 获取key By value this.getKeyByValue = function(value) { for ( var prop in entry) { if (isObjectValueEqual(entry[prop], value)) { console.log("getKeyByValue is ok"); return prop; } } return null; } } module.exports = HashMap; //module.exports 提供整个接口 });
3 附录:html页面的代码
<html> <head> <title>SeaJS</title> </head> <body> <div id="container"> </div> <script type="text/javascript" src="js/seajs/sea.js"></script> <script type="text/javascript" src="js/index/config.js"></script> </body> </html>
相关文章推荐
- js数组之稀疏数组和密集数组
- json文件中的特殊字符处理,放置json数据读取产生错误
- JS的逻辑运算符&& ||
- JavaScript:闭包
- JavaScript获取非行间样式/定义样式
- Javascript模板引擎原理,几行代码的事儿
- jsoup的使用
- JSPatch-使用经验记录
- JavaScript:获取系统当前时间,构造格式化的字符串
- js 二分法查找
- JS求两个数组 差集
- Chrome 的插件JSONView 格式化转换本地的文件
- javascript全局变量与局部变量
- html修改为jsp
- js中的clientWidth offsetWidth scrollWidth等的含义
- 使用js实现全选、反选功能
- 使用Gson解析json数据
- WEB开发:如何用js来模拟服务器的ajax响应,不依赖服务器来编写前端代码
- 可回味的js代码段
- js第三方