Dom对象事件注册和取消(addEventListener/attachEvent)
2016-06-16 14:18
645 查看
addEventListener的参数一共有三个,语法为:
element.addEventListener(type,listener,useCapture)
下面是详解
其中element是要绑定函数的对象。
type是事件名称,要注意的是"onclick"要改为"click","onblur"要改为"blur",也就是说事件名不要带"on"。
listener当然就是绑定的函数了,记住不要跟括号
最后一个参数是个布尔值,表示该事件的响应顺序,下面重点介绍一下addEventListener的第3个参数(useCapture)。
userCapture若为true,则浏览器采用Capture,若为false则采用bubbing方式。建议用false,看个例子吧。
1.兼容性判断和简单事件注册实例:
//对于IE浏览器不支持addEventListener
if (window.addEventListener) {
alert("支持addEventListener");
} else {
alert("不支持addEventListener");
}
//对于Google浏览器不支持attachEvent
if (window.attachEvent) {
alert("支持attachEvent");
} else {
alert("不支持attachEvent");
}
//IE下注册onLoad事件(先注册后触发)
window.attachEvent("onload", funcOne);
window.attachEvent("onload", funcTwo);
//Google浏览器下注册onload事件(先注册先触发)
window.addEventListener('load', funcOne, false);
window.addEventListener('load', funcTwo, false);
function funcOne() {
alert("funcOne");
}
function funcTwo() {
alert("funcTwo");
}
2.事件队列注册和取消:
<script type="text/javascript">
window.onload = function () {
var btnOne = document.getElementById("btnOne");
//IE下注册事件,先注册后触发
//btnOne.attachEvent("onclick", funcOne);
//btnOne.attachEvent("onclick", funcTwo);
//Goole下注册事件,(先注册先触发)
btnOne.addEventListener('click', funcOne, false);
btnOne.addEventListener('click', funcTwo, false);
}
function revmoeClick() {
var btnOne = document.getElementById("btnOne");
//IE下取消注册
//btnOne.detachEvent("onclick", funcOne);
//btnOne.detachEvent("onclick", funcTwo);
//Goole下取消注册事件
btnOne.removeEventListener('click', funcOne, false);
btnOne.removeEventListener('click', funcTwo, false);
}
function funcOne() {
alert("funcOne");
}
function funcTwo() {
alert("funcTwo");
}
</script>
</head>
<body>
<input type="button" id="btnTwo" value="取消注册事件" onclick="revmoeClick()"/>
<hr />
<input type="button" id="btnOne" value="事件按钮"/>
</body>
</html>
element.addEventListener(type,listener,useCapture)
下面是详解
其中element是要绑定函数的对象。
type是事件名称,要注意的是"onclick"要改为"click","onblur"要改为"blur",也就是说事件名不要带"on"。
listener当然就是绑定的函数了,记住不要跟括号
最后一个参数是个布尔值,表示该事件的响应顺序,下面重点介绍一下addEventListener的第3个参数(useCapture)。
userCapture若为true,则浏览器采用Capture,若为false则采用bubbing方式。建议用false,看个例子吧。
1.兼容性判断和简单事件注册实例:
//对于IE浏览器不支持addEventListener
if (window.addEventListener) {
alert("支持addEventListener");
} else {
alert("不支持addEventListener");
}
//对于Google浏览器不支持attachEvent
if (window.attachEvent) {
alert("支持attachEvent");
} else {
alert("不支持attachEvent");
}
//IE下注册onLoad事件(先注册后触发)
window.attachEvent("onload", funcOne);
window.attachEvent("onload", funcTwo);
//Google浏览器下注册onload事件(先注册先触发)
window.addEventListener('load', funcOne, false);
window.addEventListener('load', funcTwo, false);
function funcOne() {
alert("funcOne");
}
function funcTwo() {
alert("funcTwo");
}
2.事件队列注册和取消:
<script type="text/javascript">
window.onload = function () {
var btnOne = document.getElementById("btnOne");
//IE下注册事件,先注册后触发
//btnOne.attachEvent("onclick", funcOne);
//btnOne.attachEvent("onclick", funcTwo);
//Goole下注册事件,(先注册先触发)
btnOne.addEventListener('click', funcOne, false);
btnOne.addEventListener('click', funcTwo, false);
}
function revmoeClick() {
var btnOne = document.getElementById("btnOne");
//IE下取消注册
//btnOne.detachEvent("onclick", funcOne);
//btnOne.detachEvent("onclick", funcTwo);
//Goole下取消注册事件
btnOne.removeEventListener('click', funcOne, false);
btnOne.removeEventListener('click', funcTwo, false);
}
function funcOne() {
alert("funcOne");
}
function funcTwo() {
alert("funcTwo");
}
</script>
</head>
<body>
<input type="button" id="btnTwo" value="取消注册事件" onclick="revmoeClick()"/>
<hr />
<input type="button" id="btnOne" value="事件按钮"/>
</body>
</html>
相关文章推荐
- Dom对象事件注册和取消(addEventListener/attachEvent)
- mtd-utils工具的编译和使用
- Dom对象事件注册和取消(addEventListener/attachEvent)
- Dom对象事件注册和取消(addEventListener/attachEvent)
- Dom对象事件注册和取消(addEventListener/attachEvent)
- Dom对象事件注册和取消(addEventListener/attachEvent)
- Dom对象事件注册和取消(addEventListener/attachEvent)
- Dom对象事件注册和取消(addEventListener/attachEvent)
- CAFFE windows VS2013下配置方法总结
- 采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序(多activity)
- windows 下 tomcat 内存设置(处理tomcat 内存溢出异常)
- Chromium源码下载问题及方案汇总
- S3C6410 LCD驱动分析(转)
- 读BeautifulSoup官方文档之与bs有关的对象和属性(2)
- setNeedsDisplay setNeedsLayout
- 边框上下左右各部位隐藏显示详解
- dataguard中的standby redo 日志组数及添加的两种方法
- java同步阻塞IO
- 友盟自动更新迁移理解
- jQuery页面元素动态添加后绑定事件丢失方法,非 live