javascript点击兼容所有浏览器封装
2023-09-14 08:58:23 时间
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>如何绑定事件处理函数</title>
<style type="text/css"></style>
</head>
<body>
<div style="width: 100px;height: 100px; background-color: red;"></div>
<script type="text/javascript">
function addEvent(elem,type,handle) {
if(elem.addEventListener){
elem.addEventListener(type,handle,false);
}else if(elem.attachEvent){
elem.attachEvent('on'+type,function () {
handle.call(elem); //.call()方法调用一个函数, 其具有一个指定的this
值和分别地提供的参数(参数的列表)
})
}else{
elem['on'+type] = handle;
}
}
var div = document.getElementsByTagName('div')[0];
addEvent(div,'click',function () {
console.log('aaa')
})
addEvent(div,'click',function () {
console.log('bbb')
})
</script>
</body>
</html>
<strong>代码说明</strong>
<div><b>1.</b>obj.addEventListener(type,fn,false)IE9以下不兼容,可以为一个事件绑定多个处理程序</div>
<div><b>2.obj.attachEvent('on'+type,fn)</b>IE独有,一个事件同样可以绑定多个处理程序</div>
<div><b>3.</b>ele.onxxx=function(event){}兼容性很好,但是一个元素的同一个事件上只能绑定一个处理程序;基本等同于写在HTML行间上</div>
效果图:使用原生js,addEventListener,给每个li元素绑定一个click事件,输出他们的顺序?
1.obj.addEventListener(type,fn,false);
div.addEventListener(事件类型,处理函数,false);
如:div.addEventListener('click',function(){},false)
相关文章
- css和javascript中图片路径的不同
- 第一百五十八节,封装库--JavaScript,ajax说明
- 第一百五十节,封装库--JavaScript,表单验证--密码验证
- 第一百四十八节,封装库--JavaScript,菜单切换
- 第一百四十一节,JavaScript,封装库--DOM加载
- JavaScript经典代码【二】【javascript判断用户点了鼠标左键还是右键】
- JavaScript经典代码【一】【javascript HTML控件获取值】
- [Javascript] Broadcaster + Operator + Listener pattern -- 14. Marking Done Based on a Condition
- [Javascript] Querying an Immutable.js Map()
- loadrunner12.55:脚本语言选择,C语言 or JavaScript
- [Javascript] History API
- [Javascript] Filter out Duplicates from Flat JavaScript Array with array.filter / reduce / Set
- [Javascript] Natively Format JavaScript Dates and Times
- [Javascript] Hide Properties from Showing Up in "for ... in" Loops in JavaScript
- [ES2019] Use JavaScript ES2019 flatMap to Map and Filter an Array
- [Javascript] Proper use of console.assert in JavaScript
- Atitit.js模块化 atiImport 的新特性javascript import
- 在javascript中重新加载/刷新页面的不同方法
- javascript案例29——求1~100累加和,跳过个位数为3的数。
- javascript中的Symbol
- 从零开始学_JavaScript_系列(21)——dojo(8)(手把手教你封装一个widget)
- chromium-embedded-how-to-execute-a-javascript-callback-from-c
- 2023年中职网络安全竞赛JavaScript安全绕过解析(保姆级)
- JavaScript基础入门全解析(上)