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代码中用encodeURIComponent()函数处理中文字符串,
JS代码:
<mce:script type=”text/javascript”><!--
string = encodeURIComponent(string);
location.href = index.php?keyword=’+string;
// --></mce:script>
PHP代码:
<?php
$keyword = (isset($_GET ......
JavaScript中的对象
关键词: JavaScript 对象 ......
父窗口中有三种方式打开子窗口:
1:
window.open(URL,windowName,parameters);
2:
alert(""); //弹出信息提示对话框
confirm(""); //弹出信息确认对话框
prompt(""); //具有交互性质的对话框
3:
//创建模态你对话框
window.showModalDialog(sURL,vArguments,sFeatures)
//创建非模态对话框
window.showM ......
Marquee图片无缝滚动关键词: Marquee
先了解一下 ......
这是一道涵盖了初级、高级javascript
的趣味
题目,如果你在不运行程序
的条件下能正确回答下面的函数
调用的结果,那么你对javascript的理解应该比较到位了,至少我(http://www.attjs.com
站长)是这样认为的。
主要涉及javascript面向对象特性、重载、覆盖、作用域、函数特性、还有一个相对与C/C++
java特有的一 ......