前几天去参加了一些面试,和几位大牛谈了谈,问了一些前端常见的问题,也问了一些细节上的问题。虽然是短短的几个小时,但是对于我来说也是一段非常宝贵的时光,让我也发现了自身的一些问题。
其中一个问题,让我印象深刻,问的是一个前端相对常见的一个问题,问到如何阻止事件冒泡,如何阻止移动端是默认事件。其实,在之前我在学习前端的时候,看到这部分的时候,我也是一知半解,并不清楚如何写是一个比较好的方法,来解决这些问题。导致面试的时候,回答的也是比较差。
今天,就用这篇文章,让自己谨记这次的教诲,作为一名程序猿,只会用代码,是最低级的猿,注重细节,理解他的原理才能逐渐从万千咸鱼中脱颖而出。
话不多说了,上代码
function stopEvent(event){ //阻止冒泡事件
//取消事件冒泡
var e=arguments.callee.caller.arguments[0]||event; //若省略 此句,下面的e改 为event,IE运行可以,但是其他浏览器就不兼容
if (e && e.stopPropagation) {
// this code is for Mozilla and Opera
e.stopPropagation();
} else if (window.event) {
// this code is for IE
window.event.cancelBubble = true;
}
}