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