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(代码片段

java解析xml的几种方式哪种最好?

jQuery的DOM操作

JavaScript单行代码,也就是代码片段

实用代码片段将json数据绑定到html元素 (转)

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段