zoukankan      html  css  js  c++  java
  • Js DOM 详解

    DOM事件类

    基本概念 DOM事件的级别

    1.DOM0 element.onclick = function(){}
    
    2.DOM2 element.addEventListener("click",function(){},false)
    
    3.DOM3 element.addEventListener("key",function(){},falses)
    

    一、DOM事件模型

    
    1.捕获 
    2.冒泡
    
    
    
    

    二、DOM事件流

    当浏览器和用户交互的时候
    
    事件捕获 - 目标 - 冒泡
    
    
        
    

    三、描述DOM事件捕获的具体流程

    具体流程: window - document - html - boby - element
    
    

    四、Event对象的常见应用

    elent.preventDefault() 阻止默认事件
    elent.stopPropagation() 阻止冒泡流
    elent.stopImmediatePropagation() 可以阻止当前事件向祖辈元素的冒泡传递,也就是说该事件不会触发执行当前元素的任何祖辈元素的任何事件处理函数。
    
    elent.currentTarge()  当前被点击的元素
    elent.target()  
    当前被绑定的元素 (父元素)
    
    

    五、自定义事件

    var eve = new Event("custome");
    
    ev.addEventListener("custome",function(){
        
        console.log("custome");
    })
    
    触发:
    
    ev.dispatchEvent(eve);
    
    

    代码演示

    <body>
    
    	<div id="ev">
    
    		<style type="text/css">
    			
    			#ev{
    				 300px;
    				height:100px;
    				background: red;
    				color: #fff;
    				text-align: center;;
    				line-height: 100px;
    			}
    		</style>
    		
    		目标元素
    
    	</div>
    	<script type="text/javascript">
    		
    		// 捕获的流程 window-document - body - html - ev
    
    		// **如果是冒泡 把 true 改为false
    
    		// window
    
    		var ev = document.getElementById("ev");
    
    		window.addEventListener("click",function(){
    
    			console.log("window captrue");
    
    		},true);
    
    		// document
    
    		document.addEventListener("click",function(){
    
    			console.log("document captrue");
    
    		},true);
    
    		// body
    
    		document.documentElement.addEventListener("click",function(){
    
    			console.log("body captrue");
    		},true)
    
    		// html
    
    		document.documentElement.addEventListener("click",function(){
    
    			console.log("html captrue");
    		},true)
    
    		// body
    
    		document.documentElement.addEventListener("click",function(){
    
    			console.log("body captrue");
    		},true)
    
    		// click
    
    		ev.addEventListener("click",function(){
    
    			console.log("ev captrue");
    		},true)
    
    		// 自定义事件
    
    		var ev = new Event("test");
    
    		ev.addEventListener("test",function () {
    
    			console.log("test dispath");
    		})
    
    		ev.dispatchEvent(eves);
    
    
    	</script>
    </body>
    
    

    当点击触发div时候,事件发生的顺序为:

    window captrue
    js.dom.html:54 document captrue
    js.dom.html:62 body captrue
    js.dom.html:69 html captrue
    js.dom.html:76 body captrue
    js.dom.html:83 ev captrue
    
  • 相关阅读:
    语法树,短语,直接短语,句柄
    理解文法和语法
    了解编译原理
    实习日记7.20
    实习日记7.19
    实习日记7.18
    实习日记7.15
    实习日记7.13-7.14
    实习日记7.12
    实习日记7.11
  • 原文地址:https://www.cnblogs.com/liangfengbo/p/7439717.html
Copyright © 2011-2022 走看看