JavaScript事件
JavaScript事件分类:
1、捕获型(IE不支持)(从DOM结构的最顶端开始向下延伸)
2、冒泡型(从DOM结构的最低端向上一级级延伸)
【IE7以上可以给‘html’添加onclick事件,IE中body->html,火狐中html->body】
JavaScript添加事件监听:
1、IE:
[object].attachEvent("event_handler", fnHandler);
[object].detachEvent("event_handler", fnHandler);
当添加多个事件监听函数时,后添加的先调用,但并非严格上的先后顺序。
2、标准DOM的监听方法
[object].addEventListener("event_name", fnHandler, bCapture);
[object].removeEventListener("event_name", fnHandler, bCapture);
当添加多个事件监听函数时,先添加的先调用,而且严格按先后顺序执行。
JavaScript事件对象
在IE 浏览器中事件对象是window 对象的一个属性event,访问时通常采用如下方法。
oP.onclick = function(){
var oEvent = window.event;
}
尽管它是window 对象的属性,但event 对象还是只能在事件发生时被访问,所有的事件处理函数执行完之后,该对象就消失了。
而标准的DOM 中规定event 对象必须作为惟一的参数传给事件处理函数,因此在类似Firefox 浏览器中访问事件对象通常将其作为参数,代码如下:
oP.onclick = function(oEvent){
}
因此为了兼容两种浏览器,通常采用下面的方法。
oP.onclick = function(oEvent){
if(window.event) oEvent = window.event;
}
相关文档:
在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
<input value="Test" type="button" onclick="alert(""OK"");" />
IE提示出错后,再漫不经心地改为:
<input value="Test" type="button" onclick="alert(\"OK\");" />
结果还是出错。
这时,我就想不通了,虽然我知道最直接的解决方法 ......
现在感觉js很好很强大,随着深入的学习,你就会不会拒绝在客户端使用js。之前也在网上找了点资料,一起看看。
value="我是 button" />
动态添加onclick事件:
<input type="button" value="我是 button" id="bu">
<script type="text/javascript">
var bObj=document. ......
先给出基本的HTML文件:
<ul>
<li id="m01"></li>
<li id="m01"></li>
<li id="m01"></li>
</ul>
<div>
<div id="C01"> </div>
<div id="C02">&n ......
<html>
<body>
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
document.write(arr.concat(arr2))
</script>
</body>
</ ......