关于event事件

119 阅读2分钟

event事件

  • 当监听一个鼠标移入或者点击事件时,当点击或者移入等其他事件响应后,都会返回一个event对象作为实参传入响应函数里 例如:
areaDiv.onmousemove = function(event){
			
			
			<!-- 解决事件对象的兼容性问题
			event = event || window.event; -->
			
			
			clientX可以获取鼠标指针的水平坐标
			cilentY可以获取鼠标指针的垂直坐标
			
			var x = event.clientX;
			var y = event.clientY;
} 

我们可以直接在函数里直接使用这个event,event有很多属性,如

event.target  //返回触发特定事件的元素
event.clientX  //返回鼠标指针的水平坐标

这样我们就可以操作这个事件对象

  • 如事件委派 html代码
    <ul id="u1" style="background-color: #bfa;">
      		<li>
      			<p>我是p元素</p>
      		</li>
      		<li><a href="javascript:;" class="link">超链接一</a></li>
      		<li><a href="javascript:;" class="link">超链接二</a></li>
      		<li><a href="javascript:;" class="link">超链接三</a></li>
      </ul>
    
    JS代码
    u1.onclick = function(event){
    			
    				
    				
    	// target
    	event中的target表示的触发事件的对象//
    				 
    				
    	如果触发事件的对象是我们期望的元素,则执行否则不执行
    		if(event.target.className == "link"){
    			alert("我是ul的单击响应函数");
    		}
     };
    
    
    因为有冒泡的存在,我们点击一个元素,他会把该点击事件像吐泡泡一样一直往父元素传这个点击事件,父元素也会执行此事件,所以当我们点击ul里的li时,li有一个点击的事件,虽然li没有给点击事件做出响应函数,不会发生什么,但是他会冒泡给父元素一个点击事件,所以ul的onclick就会被触发,触发事件就会给浏览器传一个事件对象event,并且作为响应函数的实参,我们就可以用他的属性event.target返回我们所点击的li
    if(event.target.className == "link"){
     			alert("我是ul的单击响应函数");
     		} 
    
    这段代码表示如果点击的是clss为 link的就执行alert("我是ul的单击响应函数") 这样我们就可以做到点击不是class 为link的不会响应