阻止默认事件、阻止冒泡,封装方法,兼容IE

在开发中阻止默认事件和阻止冒泡事件是常用的,下面封装这两个方法。

1.阻止冒泡

阻止冒泡IE9以上使用event.stopPropagation(),IE9一下使用event.cancelBubble = true。示例:

<div id='demo'>阻止冒泡</div>
<script>
		document.onclick = function () { // document点击事件,检验是否触发冒泡
            console.log('I\'m document');
        }
        var demo = document.getElementById('demo'); // 获取div元素
        demo.onclick = function (e) { // div点击事件
            var event = e || window.event; // 获取事件对象,兼容IE
            stopBubble(event)  // 调用封装的冒泡方法
            console.log('I\'m div Elemenet')
        }

        function stopBubble(event) { // 封装兼容性良好的‘阻止冒泡’
            if (event.stopPropagation) {
                event.stopPropagation()  // IE9以下不兼容
            } else {  //  兼容IE
                event.cancelBubble = true;
            }
        }
</script>

2.阻止默认事件

阻止默认事件,非IE内核使用event.preventDefault(),IE内核使用event.returnValue=false。示例:

<a href='https://www.baidu.com' id='demo'>阻止超链接默认跳转事件</a>
var demo = document.getElementById('demo'); // 获取a元素
demo.onclick = function (e) { // div点击事件
	var event = e || window.event; // 获取事件对象,兼容IE
	stopDefualtHandl(event)  // 调用封装的阻止默认事件方法
	console.log('我没跳转')
}

function stopDefualtHandl(event) {  // 封装兼容性良好的阻止默认事件方法
	if (event.preventDefault) {
		event.preventDefault();  // 非IE,阻止默认事件
	} else {
		event.returnValue = false;  // 兼容IE,阻止默认事件
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值