js阻止冒泡和阻止默认行为

来源:互联网 发布:idea新建java项目 编辑:程序博客网 时间:2024/06/05 02:28

停止冒泡

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

阻止默认行为

<a href="http://caibaojian.com/" id="testA" >caibaojian.com</a><script> var a = document.getElementById("testA");a.onclick =function(e){    //阻止默认浏览器动作(W3C)    if(e && e.preventDefault){        e.preventDefault();    }else{        //IE中阻止函数器默认动作的方式        window.event.returnValue = false;    }}</script>

只会阻止默认行为,不会停止冒泡

<div id='div1'  onclick='alert("div");'>    <ul  onclick='alert("ul");'>        <li id='ul-a' onclick='alert("li");'><a href="http://caibaojian.com/" id="testB">caibaojian.com</a></li>    </ul></div><script> //原生的js,只会阻止默认行为,不会停止冒泡var b = document.getElementById("testB");b.onclick = function(){    return false;};</script>

既阻止默认行为又停止冒泡

<div id='div2'  onclick='alert("div");'>    <ul  onclick='alert("ul");'>        <li id='ul-a-1' onclick='alert("li");'><a href="http://caibaojian.com/" id="testC">caibaojian.com</a></li>    </ul></div><script src="js/jquery.min.js"></script><script>//使用jQuery,既阻止默认行为又停止冒泡    $("#testC").on('click',function(){        return false;    });</script>
0 0
原创粉丝点击