开源夏令营之项目汇报2
来源:互联网 发布:淘宝免单群是什么意思 编辑:程序博客网 时间:2024/05/16 18:09
2014年7月12日,周六
项目:html5光影粒子引擎
上次的报告说该项目最主要的就是粒子和canvas,
但做web前端肯定离不开js库的调用,所以这次报告说下js库。
常见的js库有:JQuery,Prototype等等,但也应学会写自己的js库。
一.做js库要注意的问题:
1.不要使用版本(浏览器)检测
2.要使用能力检测
3.使用自己的命名空间(简单的说就是函数名要唯一)
4.js支持多次声明同名函数,但只使用最后声明的版本
5.做到唯一性,不共享。
6.js里区分大小写。
7.匿名函数 (function(){ //代码 })(); 外部无法访问
二.基本模版
(function(){
function $(){ //定义一个$函数,$约等于getElementsById()
//代码
}
window['king']={} //命名空间
window['king']['$']=$; //将明明空间和$注册到windows上
})();
三.应用举例
//king.js
(function(){
window['king']={} //命名空间
function $(){ //定义一个$函数
var elements = new Array();
for(var i=0;i<arguments.length;i++){
var element = arguments[i];
if(typeof element == 'string'){
element = document.getElementById(element);
}
if(arguments.length==1){
return element;
}
elements.push(element);
}
return elements;
}
window['king']['$']=$; //将明明空间和$注册到windows上
function getElementsByClassName(className,tag){
var allTags = document.getElementsByTagName(tag);
var matchingElements = new Array();
className = className.replace(/\-/g,'\\-');
var regex =new RegExp('('|\\s)'+ className + '(\\s|$)');
var element;
for(var i=0;i<allTags.length;i++){
element = allTags[i];
if(regex.test(element.className)){
matchingElements.push(element);
}
}
return matchingElements;
}
window['king']['getElementsByClassName']=getElementsByClassName;
})();
//King.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
<script charset="gb2312" type="text/javascript" src="king.js"></script>
<script type="text/javascript">
function testClick(){
var testInput = king.$("testId","testId2");
//var testInput = king.getElementsByClassName("testme","input");
for(var i=0;i<testInput.length;i++){
alert(testInput[i].value);
}
}
</script>
</head>
<body>
<input type="text" value="test" class="testme" id="testId"/>
<input type="text" value="test2" class="testme" id="testId2"/>
<input type="button" value="clickme" onclick="testClick()"/>
</body>
</html>
- 开源夏令营之项目汇报2
- 开源夏令营之项目汇报1
- 开源夏令营之项目汇报3
- 开源夏令营之项目汇报4
- 开源夏令营之项目汇报5
- 开源夏令营之项目汇报7
- 开源夏令营之项目汇报8
- 开源夏令营之项目汇报9
- 开源夏令营之项目汇报6(中期报告)
- 开源夏令营之项目汇报10(结题报告)
- 开源夏令营《基于HackRF开发GPS信号仿真模拟器》终期汇报
- 项目进度汇报2
- 开源夏令营(2)
- 我的开源夏令营之旅
- [SC-08]开源夏令营项目期末总结
- 开源夏令营总结
- 开源夏令营总结
- 开源夏令营总结
- 768038122----骗子
- Linux下C编程:进程间通信(IPC)总结
- Two Sum && 3 Sum
- 1751: [Usaco2005 qua]Lake Counting (搜索)
- 堆排序
- 开源夏令营之项目汇报2
- 《Head First 设计模式》之简单工厂
- Python urllib模块与urlopen()函数解析偎
- 学习CSS了解单位em和px的区别
- git使用之分支理解、删除本地分支、删除远程分支
- hdu1214 圆桌会议(数学:题意难懂+水题)
- 【读书笔记】【收获,不止Oracle】索引组织表
- 重构改善既有代码的设计-处理概括关系
- 回顾经典Effective C++ 5 6 7 8