码迷,mamicode.com
首页 > 其他好文 > 详细

事件绑定和阻止默认事件

时间:2014-08-05 10:53:29      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:style   使用   io   art   问题   ar   cti   div   

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

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

document.oncontextmenu=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;

})

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

事件绑定和阻止默认事件,布布扣,bubuko.com

事件绑定和阻止默认事件

标签:style   使用   io   art   问题   ar   cti   div   

原文地址:http://www.cnblogs.com/zfyouxi/p/3891572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!