js 阻止冒泡 阻止默认事件

2021-02-19 04:17

阅读:669

标签:bubble   efault   def   html   pre   function   参数   才有   两种   

js冒泡和捕获是事件的两种行为,使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播。使用event.preventDefault()可以取消默认事件。

1. 阻止冒泡

function stopBubble(e) { 
//如果提供了事件对象,则这是一个非IE浏览器 
if ( e && e.stopPropagation ) 
    //因此它支持W3C的stopPropagation()方法 
    e.stopPropagation(); 
else 
    //否则,我们需要使用IE的方式来取消事件冒泡 
    window.event.cancelBubble = true; 
}

2. 阻止默认行为

//阻止浏览器的默认行为 
function stopDefault( e ) { 
    //阻止默认浏览器动作(W3C) 
    if ( e && e.preventDefault ) 
        e.preventDefault(); 
    //IE中阻止函数器默认动作的方式 
    else 
        window.event.returnValue = false; 
    return false; 
}

事件注意点

  1. event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等;
  2. event对象只在事件发生的过程中才有效。

firefox里的event跟IE里的不同,IE里的是全局变量,随时可用;firefox里的要用参数引导才能用,是运行时的临时变量。
在IE/Opera中是window.event,在Firefox中是event;而事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,Opera中两者都可用。·

下面两句效果相同:

function a(e){
  var e = (e) ? e : ((window.event) ? window.event : null); 
  var e = e || window.event; // firefox下window.event为null, IE下event为null
}

js 阻止冒泡 阻止默认事件

标签:bubble   efault   def   html   pre   function   参数   才有   两种   

原文地址:https://www.cnblogs.com/SPHmomo/p/12936121.html


评论


亲,登录后才可以留言!