快速构建自己的第一个SeaJS
来源:互联网 发布:淘宝照片怎么拍 编辑:程序博客网 时间:2024/05/21 11:07
SeaJS在这里就不过多的介绍,关于SeaJS请参考官网:http://seajs.org
本实例功能说明:为页面动态加载一些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>
0 0
- 快速构建自己的第一个SeaJS
- Maven1_构建自己的第一个maven项目
- 【IntelliJ IDEA】Maven构建自己的第一个Java后台
- Django:快速搭建自己打第一个的Blog
- seajs项目构建的总结
- 我的seaJs第一课
- 自己的第一个Blog
- 自己的第一个博客
- 自己的第一个html
- 自己的第一个博客
- 快速构建自己的linux发行光盘
- BaseProject快速构建自己的APP
- BaseProject快速构建自己的APP
- UIWebView 初学者快速入门(实现自己的第一个网页)3
- 构建您的第一个 Grails 应用程序
- 构建您的第一个 Grails 应用程序
- 构建您的第一个Grails 应用程序
- 构建我的第一个Ionic项目
- swift 中获取当前时间
- 1013. 数素数 (20)——做题纪录
- Qconf配置管理工具-Java使用文档
- CSS设置字间距
- 快速入门:十分钟学会Python
- 快速构建自己的第一个SeaJS
- 经典 定位等待事件问题方法
- 彻底学会使用epoll(六)——关于ET的若干问题总结
- java基础-----集合
- EditText弹出输入键盘后页面往上顶的问题
- 安卓模拟器端口5037被占用
- linux笔记
- 自己动手搭建搜索工具
- 测试IO高低电平是遇到的问题(调试工装遇到的问题)