您的位置:首页 > Web前端 > JavaScript

阻止js事件冒泡

2011-08-23 20:47 274 查看
一、判断js事件触发源,屏蔽不需要激发事件的事件源

<script language="javascript">

document.onclick=onClick;//当用户在文档中点击是调用onClick function()

function onClick(ev)

{

ev = ev || window.event;//事件

var target = ev.target || ev.srcElement;//获得事件源

/*target.getAttribute()是获取该事件源对像里面的一些属性。

比如对像中有(name,id,type等等) */

/*需要屏蔽的事件源*/

var dragObj = target.getAttribute('type');

if(dragObj != dragObj ){

/*执行事件行为 */

}

}

</script>

二、直接阻止事件冒泡

function stopBubble(e) {

//如果提供了事件对象,则这是一个非IE浏览器

if ( e && e.stopPropagation )

//因此它支持W3C的stopPropagation()方法

e.stopPropagation();

else

//否则,我们需要使用IE的方式来取消事件冒泡

window.event.cancelBubble = true;

}

测试:IE6.0,FireFox,Chrome,Opera均有效。

三、当按键后,不希望按键继续传递给如HTML文本框对象时,可以取消返回值.即停止默认事件默认行为。

//阻止浏览器的默认行为

function stopDefault( e ) {

//阻止默认浏览器动作(W3C)

if ( e && e.preventDefault )

e.preventDefault();

//IE中阻止函数器默认动作的方式

else

window.event.returnValue = false;

return false;

}

在IE中测试效果很好;Chrome,Opera无效,在FF中时好时坏,哈啊哈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: