DOM事件
Posted ★【金字塔】☆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOM事件相关的知识,希望对你有一定的参考价值。
一、鼠标事件
onclick 鼠标单击
ondblclick 鼠标双击
onmousedown 鼠标按下
onmouseup 鼠标抬起
onmouseover 鼠标悬浮
onmouseout 鼠标离开
onmousemove 鼠标移动
onmouseenter 鼠标进入
onmouseleave 鼠标离开
二、键盘事件
1、keydown()
keydown 事件会在键盘按下时触发。
2、keypress()
keypress 事件会在敲击按键时触发,我们可以理解为按下并抬起同一个按键。
3、keyup()
keyup 事件会在按键释放时触发,也就是你按下键盘起来后的事件。
4、keycode:获得键盘上对应的 ascII 码
a、区分IE浏览器和W3C标准浏览器
document.onkeydown = function (event) {
if (window.event){
console.log("我是IE、或者chrome");
console.log(event.keyCode); /!*IE chrome*!/
}else{
console.log("我是除chrome的W3C");
console.log(event.which); /!*W3C*!/
}
};
b、不区分大小写
document.onkeydown = function (event) {
console.log(event.keyCode);
};
c、区分大小写
document.onkeypress = function (event) {
console.log(event.keyCode);
};
三、html事件
onload 页面结束加载之后触发。
onunload 一旦页面已下载时触发(或者浏览器窗口已被关闭)。
onselect 在元素中文本被选中后触发。
onchange 在元素值被改变时运行的脚本。
onfocus 当元素获得焦点时运行的脚本。
onresize 当浏览器窗口被调整大小时触发。
onscroll 当元素滚动条被滚动时运行的脚本。
四、同一元素添加相同事件W3C和IE的区别
var btn3 = document.getElementById("btn3");
Dom0模型: 同一个元素,同类事件只能添加一个,如果添加多个,后面添加的会覆盖前面添加的
btn3.onclick = function () {
console.log("Hello");
};
btn3.onclick = function () {
console.log("Hello3")
};
Dom2模型:可以给同一个元素添加多个同类事件
btn3.addEventListener("click",function () {
alert("Hello1");
});
btn3.addEventListener("click",function () {
alert("Hello2");
});
不同浏览器的兼容写法
if (btn3.attachEvent){
/*IE低版本*
btn3.attachEvent("onclick",function () {
alert("IE Hello");
});
}else{
/*IE高版本 和W3C浏览器*/
btn3.addEventListener("click",function () {
alert("W3C Hello");
});
}
五、事件冒泡和事件捕获
事件冒泡(false):从子元素到父元素
事件捕获(true):从父元素到子元素
stopPropagation:阻止事件冒泡
preventDefault(W3C)、returnValue(IE) 阻止默认事件
代码举例:
<script> var div1 = document.getElementById("div1"); div1.addEventListener("click",function (event) { event.stopPropagation(); alert("div1"); },false); var div2 = document.getElementById("div2"); div2.addEventListener("click",function (event) { event.stopPropagation(); alert("div2"); },false); var div3 = document.getElementById("div3"); div3.addEventListener("click",function (event) { event.stopPropagation(); alert("div3"); },false); var div4 = document.getElementById("div4"); div4.addEventListener("click",function (event) { event.stopPropagation(); alert("div4"); },false); </script>
以上是关于DOM事件的主要内容,如果未能解决你的问题,请参考以下文章
jquery 对象的 heightinnerHeightouterHeight 的区别以及DOM 元素的 clientHeightoffsetHeightscrollHeightoffset(代码片段
Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段