只要事件发生就会产生一个事件
event事件对象常见的属性和方法
事件对象属性方法 | 说明 |
e.target | 返回触发事件的对象 标准 |
e.srcElement | 返回触发事件的对象 非标准【ie6-8使用】 |
e.currentTarget | 返回绑定事件的对象 |
e.type | 返回事件的类型,比如:click,mouseover 不带on |
e.returnValue | 该属性阻止默认事件(默认行为) ie6-8,比如不让链接跳转 |
e.preventDefault() | 该属性阻止默认事件(默认行为)标准,比如不让链接跳转 |
e.stopPropagation() | 阻止冒泡 【标准】 |
e.cancelBubble | 阻止冒泡【ie】 |
阻止默认事件的发生
<a id="link" href="http://www.baidu.com">这是a</a>
<script>
var link = document.getElementById("link");
link.onclick = function() {
alert("嘻嘻");
//方法一: return false; //阻止页面跳转
//方法二:event.returnValue=false;
方法三:event.preventDefault();
}
</script>
事件冒泡机制
1.元素必须是嵌套
2.嵌套的元素还必须触发的是相同的事件
阻止冒泡的方法
标准浏览器 和 ie浏览器
w3c:event.stopPropagation()
IE:event.cancelBubble = true
兼容写法
if(event && event.stopPropagation){ // w3c标准
event.stopPropagation();
}else{ // IE系列 IE 678
event.cancelBubble = true;
}
target和currentTarget和this的区别
this:返回的是绑定事件的对象
e.target:返回的是触发事件的对象
e.currentTarget:当前绑定事件的对象