事件绑定和阻止默认事件

一般 为了阻止默认事件,我们都用return false,但是 如果你用了事件绑定,return false在高版本浏览其中就会失效,但是低版本浏览器中还是可以的,我们可以使用事件对象里面preventDefault()方法来去解决高版本浏览器中事件绑定了无法用return false阻止默认事件的问题。

例如:取消鼠标右击后出现的默认菜单

document.οncοntextmenu=function()

{

  return false;

}

这样在各个浏览器中,鼠标右击后,不会出现默认菜单了,但是如果用了事件绑定会怎样呢:

 事件绑定函数:

//obj:给哪个元素加事件

//sEv:事件名称

//fn:执行函数

function addEvent(obj,sEv,fn)

{

  if(obj.addEventListener) //表示高版本浏览器

{

    obj.addEventListener(sEv,fn,false);

}

else

{

 obj.attachEvent('on'+sEv,fn)   //低版本浏览

}

}

现在我们给document绑定右击事件

addEvent(document,'contextmenu',function(){

return false;

})

这时,你会发现,在高版本浏览器里面,点击鼠标右击,菜单仍然可以出现,而在低版本里面,点击鼠标右键,菜单不会出现。

解决方法:

addEvent(document,'contextmenu',function(ev){

 var oEvent=ev||event;

       oEvent.preventDefault && oEvent.preventDefault(); //高版本浏览器支持,低版本浏览器不支持此方法

       return false;

})

这样就可以完美解决绑定事件后,阻止浏览器的默认方法了,兼容各个浏览器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值