return false的妙用

分别讨论return false 在原生javascript   以及   jquery   以及在VQuery中如何写出即阻止默认事件也阻止冒泡的return false;

先看原生JS  以下是代码

window.οnlοad=function()
{
    var aDiv = document.getElementsByTagName("div");
    for(var i=0;i<aDiv.length;i++)
    {
        aDiv[i].onclick=function()
        {
            alert(this.style.backgroundColor);
            return false;
        };
    }
};
</script>
<style>
div{ padding:50px;}
</style>
</head>

<body>
<div style="background-color:green">
  <div style="background-color:red">
    <div style="background-color:black"></div>
  </div>
</div>

结果:

原生JS:                     return false                                                            IE             ff
                                        阻止默认       yes    yes
                                 阻止冒泡       no            no

 


jquery                       return false                                                          IE             ff
                                        阻止默认       yes    yes
                                 阻止冒泡       yes    yes

要使得VQuery的return false也同时具有阻止默认和阻止冒泡要这么写

function myAddEvent(obj, sEv, fn)
{
    if(obj.attachEvent)
    {
        obj.attachEvent('on'+sEv, function (){
                  //ie的attachEvent方法有一个BUG,如果不指定this的话,this指向window
            if(false==fn.call(obj))
            {
                event.cancelBubble=true;                  //阻止冒泡
                return false;                             //阻止默认
            }
        });
    }
    else
    {
        obj.addEventListener(sEv, function(ev){
            if(false==fn.call(obj))
            {
                ev.cancelBubble=true;                     //阻止冒泡
                ev.preventDefault();                      //阻止默认
            }
        }, false);
    }
}

 

转载于:https://www.cnblogs.com/ggbd-lie/archive/2012/10/19/2731117.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值