易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript 跨浏览器的事件系统3

这部分说一下最近非常流行的事件代理。事件代理的实现简单来说,是把事件绑定到目标元素的祖先元素上,然后通过冒泡或捕获得到事件源,然后再判定事件源是否等于目标元素再执行回调函数。由于对目标元素的判定有时非常模糊,因此通过判定即可调用回调函数,这样,我们就达到一个监听器为许多事件源服务的目的。对于性能一向非常不怎么样的IE6来说,实在帮了一个大忙。
假如,有一个无序列表,点击弹出它的innerHTML,如果按事件绑定的做法,代码大概是这样:
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 els = document.getElementsByTagName("li")
for(var i=0,n=els.length;i<n;i++){
addEvent(els[i],"click",function(){
alert(this.innerHTML)
})
}
}

<!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 els = document.getElementsByTagName("li")
for(var i=0,n=els.length;i<n;i++){
addEvent(els[i],"click",function(){
alert(this.innerHTML)
})
}
}
</script>
</head>
<body id="body">
&l


相关文档:

Javascript 刷新框架及页面的方法总集

先来看一个简单的例子:
下面以三个页面分别命名为frame.html、top.html、bottom.html为例来具体说明如何做。
Java代码
frame.html 由上(top.html)下(bottom.html)两个页面组成,代码如下:   
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ......

介绍怎样解决JavaScript页面刷新与弹出窗口的问题。

 介绍怎样解决JavaScript页面刷新与弹出窗口的问题。
  1.无提示刷新网页
  大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点“确定”才会刷新。
  而有的页面不会提示,不弹出提示窗口,直接就刷新了.
  如果页面没有form,则不会弹出提示窗口。如果页面有form表单,
  a)< fo ......

Javascript递归与各种循环执行效率的比较

以下分别是用递归和两种循环对斐波那契数列的简单实现。(结果仅供参考)
递归的模式:
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 ......

Javascript简易计时器(用来记算代码的执行时间)

自己写的一个简易计时器,能记算代码的执行时间,还可以拿来测试代码的执行效率。
function Counter(){
this.start();
}
Counter.prototype.getTime = function(){
var time = new Date();
return time.getSeconds()*1000+time.getMilliseconds();
}
Counter.prototype.start = function(){
this. ......

javascript 父窗口 子窗口

父窗口中有三种方式打开子窗口:
1:
window.open(URL,windowName,parameters);
2:
alert(""); //弹出信息提示对话框
confirm(""); //弹出信息确认对话框
prompt(""); //具有交互性质的对话框
3:
//创建模态你对话框
window.showModalDialog(sURL,vArguments,sFeatures)
//创建非模态对话框
window.showM ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号