javascript 跨浏览器的事件系统4
上次说到我们在无菌环境中设计了一个事件代理函数,但性能是个问题,解决它我们需要缓存节点集合,发现节点集合不足以应对新情况时,再替换这个节点集合,重新开始匹配。下面是新的方案:
var delegate = function(selector,type,callback){
var els = $(selector);
addEvent(document,type,function(e){
var flag = true;
var node = e.srcElement || e.target;
for(var i=0,el;el = els[i++];){
if(node === el){
flag = false;
return callback.call(node,e);
}
}
if(flag){
els = $(selector);
for(var i=0,el;el = els[i++];){
if(node === el){
return callback.call(node,e);
}
}
}
},true);
}
<!doctype html>
<html lang="zh-ch" id="html">
<head>
<meta charset="utf-8" />
<meta content="IE=8" http-equiv="X-UA-Compatible"/>
<title>事件代理 by 司徒正美</title>
<script type="text/javascript">
window.onload = function(){
var addEvent = function(el,type,callback,data){
if ( el.addEventListener ) {//如自定义对象就绑定回调函数了
el.addEventListener( type, callback, !!data );
} else if ( el.attachEvent ) {
el.attachEvent( "on" + type, function(){
return callback.call(el,window.event)
});
}
}
var delegate = function(selector,type,callback){
var els = $(selector);
addEvent(document,type,function(e){
var flag = true;
var node = e.srcElement || e.target;
for(var i=0,el;el = els[i++];){
if(node === el){
flag = false;
return callback.call(node,e);
}
}
if(flag){
els = $(select
相关文档:
JavaScript中的对象
关键词: JavaScript 对象 ......
1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制
2.:js判断汉字、判断是否汉字 、只能输入汉字
3:js判断是否输入英文、只能输入英文
4:js只能输入数字,判断数字、验证数字、检测数字、判断是否为数字、只能输入数字
5:只能输入英文字符和数字
6: js email验证 、js 判断 ......
以下分别是用递归和两种循环对斐波那契数列的简单实现。(结果仅供参考)
递归的模式:
function Fibonacci(num){
if(num <= 2){
return 1;
}else{
return Fibonacci(num - 1) + Fibonacci(num - 2)
}
}
var counter1 = new Counter();
Fibonacci(30);
counter1.show()
//Firefo ......
代码主要是操作cookie的两个函数:一个是setCookie用于设置cookie的值,另外一个是getCookie 用于取cookie的值,实现了简单的cookie存取操作,很简单,代码如下:
<mce:script language="JavaScript" type="text/javascript"><!--
function setCookie(name,value)
{
//用于存储赋值给document.cookie的c ......