js 事件

作者: 丶温瞳 | 来源:发表于2019-03-15 10:01 被阅读0次

    1. 事件冒泡

    <div id = 'box1'><div id = 'box2'></div></div>

    box1.onclick=fuction(){console.log(1)}

    box2.onclick=function(event){

    event.stopPropagation(); // 停止事件冒泡   

    event.cancleBubble = true; // ie 8以下阻止事件冒泡

    event = event || window.event;

    event.stopPropagation ? event.stopProgapation() : (event.cancleBubble = true);

    };

    2.注销事件  (删除事件)

    bx.removeEventListener('click',chilidClick); // 必须为同一个方法

    3.事件委托

    window.onload = function(){

    var oUl = document.getElementById("ul1");

    oUl.onclick = function(ev){

    var ev = ev || window.event;

    var target = ev.target || ev.srcElement;

    if(target.nodeName.toLowerCase() == 'li'){

    alert(123);          

    alert(target.innerHTML);

    }

    } }

     总结:

    那什么样的事件可以用事件委托,什么样的事件不可以用呢?

    适合用事件委托的事件:click,mousedown,mouseup,keydown,keyup,keypress。

    值得注意的是,mouseover和mouseout虽然也有事件冒泡,但是处理它们的时候需要特别的注意,因为需要经常计算它们的位置,处理起来不太容易。

    不适合的就有很多了,举个例子,mousemove,每次都要计算它的位置,非常不好把控,在不如说focus,blur之类的,本身就没用冒泡的特性,自然就不能用事件委托了。

    相关文章

      网友评论

          本文标题:js 事件

          本文链接:https://www.haomeiwen.com/subject/yuokmqtx.html