冒泡、捕获、阻止默认事件

Ele.addEventListener(type,fn,false);  false为冒泡  true为捕获

在同一个ele上可以绑定相同type事件,可以一个为冒泡一个为捕获。

会先执行捕获事件

  1. 事件冒泡:

从代码结构上(非视觉上)嵌套关系的元素,会存在冒泡功能。

点击子元素,会从子元素依次往父元素,触发事件。

  1. 事件捕获:

代码结构上(非视觉上)嵌套关系的元素,会存在捕获功能。

点击子元素,会自父元素捕获至子元素(该事件源元素)

触发顺序  先捕获 后冒泡

focus、blur、change、submit、reset、select等事件没有冒泡功能

 

取消冒泡与阻止默认事件

  1. 取消冒泡

·标准:event.stopPropagation();

·ie:event.cancelBubble=true;

 

  1. 阻止默认事件

阻止默认事件 方法

1. return false; 以对象属性的方式注册的事件才生效

2.event.preventDefault()  w3c标准  ie9下不兼容

3.event.returnValue = false; 兼容ie

表单提交、a标签跳转、右键菜单等

 

// 阻止默认事件 方法
// 1. return false; 以对象属性的方式注册的事件才生效
// 2.event.preventDefault()  w3c标准  ie9下不兼容
// 3.event.returnValue = false; 兼容ie
// 表单提交、a标签跳转、右键菜单等

// 阻止右键菜单


document.oncontextmenu = function(e){
	console.log(1);
	// return false;
	// e.preventDefault();
	// e.returnValue = false;
}


// 封装阻止默认事件 
function stopEvent(e){
	if (e.preventDefault) {
		e.preventDefault();
	}else{
		e.returnValue = false;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值