学习javaScript必知必会(4)~事件、事件绑定、取消事件冒泡、事件对象
2022-01-16 20:04
1216 查看
1、常用的事件:
① onload:页面加载
② onblur: 失去焦点 onfocus: 获取焦点
③ onclick:点击
④ onmouseover:鼠标经过 onmouseout:鼠标离开
⑤ onchange:内容改变
⑥ onsubmit:表单提交
2、绑定事件方式:
(1)行内绑定:
<元素 事件="事件处理程序(函数)"> <script> function 函数名(){ console.log(this); //行内绑定的this是指向window } </script>
(2)动态绑定(用于结构+样式+行为分离的页面):
前提是进行window.load的初始化,在初始化过程中将事件绑定到元素(标签)上
语法:对象.事件 = 事件处理程序
<button id="btn" >按钮</button> //js文件:通过window.onload 进行初始化,在初始化的过程中将事件动态绑定到元素上 window.onload = function (){ document.getElementById("btn").onclick = function (){ console.log(this); } }
(3)事件监听(为一个对象绑定多个事件处理程序)
① ie: attachEvent(type, callback) type:事件名,例如 onclick、onsubmit、onchange等 callback:事件处理程序(函数) ② 基于w3c模式:attachEventListener(type, callback, [capture]) type:事件名,(没有前缀on)例如 click、submit、change等 callback:事件处理程序(函数) capture:可选,事件模型(为true是捕捉模式,false是冒泡模式)
//进行ie或w3c的判断 function addEvent(obj, type, callback){ if(window.attachEvent){ obj.attachEvent('on' + type, callback); }else { obj.addEventListener(type, callback); } }
3、取消事件冒泡:
① ie: window.event.cancelBubble = true; ② w3c: function(event) {//方法的第一个参数是event event.stopPropagation(); } //进行ie或w3c的判断 function stopBubble(event){ if(window.event){ window.event.cancelBubble = true; }else{ event.stopPropagation(); } }
4、取消默认行为(例如:提交按钮、超链接)
- 有些情况需要取消掉默认行为,例如资料填写不完整,将提交按钮的提交行为进行取消
//方法一:return false取消 <form method="get" action="#" onsubmit="return false"> //取消表单提交
//方法二:ie:window.event.returnValue = false; // w3c: event.preventDefault(); <form method="get" action="#" > <input type="text" name="name" id="name"/> <input type="submit" value="提交" id="submit"/> </form> <script> window.onload = function (){ document.getElementById('submit').onclick = function (event) { if(document.getElementById('name').value===''){ if(window.event){ window.event.returnValue = false; //ie }else{ event.preventDefault(); //w3c } } } } </script>
5、事件对象(事件发生时产生的对象,该对象包含了该事件的所有信息)
■ 获取事件对象:
① ie8 :window.event
② ie9、w3c: function(event) //函数的第一个形参
相关文章推荐
- javascript学习(十二):js 中为某个对象(控件)绑定事件通常可以采取两种手段
- JavaScript权威设计--事件冒泡,捕获,事件句柄,事件源,事件对象(简要学习笔记十八)
- 浅谈javascript事件取消和阻止冒泡
- js学习小结(十二)2014.5.20(事件冒泡以及事件对象)
- JavaScript call apply使用——JavaScript对象的方法绑定到DOM事件后this指向问题
- JavaScript 事件对象学习
- 【javascript】对象绑定事件
- 看懂此文,不再困惑于javascript中的事件绑定、事件冒泡、事件捕获和事件执行顺序
- event事件对象 兼容写法:var oEvent=ev||event; 和取消事件冒泡
- [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)
- javascript中的事件绑定、事件冒泡、事件捕获和事件执行顺序
- JavaScript之jQuery-4 jQuery事件(页面加载后执行、事件处理、事件冒泡、事件对象、模拟操作)
- JavaScript中的事件流—捕捉和冒泡及取消冒泡事件
- JavaScript-父子dom同时绑定捕获冒泡点击事件时执行顺序
- JavaScript:事件对象Event和冒泡
- JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
- 【js学习之路】事件绑定函数中,将this换成调用对象导致的问题
- JavaScript中关于事件绑定、冒泡、捕获和执行顺序
- javascript取消事件冒泡
- 10.10 笔记-JavaScript 02 绑定事件,对象类型的转换