Web API基础知识四

132 阅读1分钟

Web API基础知识四

事件对象

获取事件对象

元素.addEventListener('click',function(e){
    
})//e为事件对象

常用属性:

type ----获取当前事件类型(点击事件。。。)

clientX/cllientY ----获取光标相对于浏览器可见窗口左上角的位置

offsetX/offsetY -----获取光标相对于当前DOM元素左上角的位置

key -----用户按下的键盘键的值(不提倡用keyCode)

事件流

1 给多个父子结构的标签绑定事件, 先点击了子元素,产生事件流动

2 事件流动分成两个阶段

1649839997390.png ​ ① 捕获阶段 父节点流动到子节点

​ ② 冒泡阶段 子节点流动到父节点 (默认)

​ ③事件流动方向默认是 使用了冒泡 - 点击儿子标签 触发

​ 儿子->父亲->爷爷

3 我们可以修改触发事件 让它选择使用 捕获阶段还是冒泡阶段(默认)

​ addEventListener 可以选择使用冒泡还是捕获(传入true就是捕获)

​ addEventListener (事件类型,事件处理函数,捕获还是冒泡(默 认值 false,可以省略))

​ addEventListener (“click”,function(){},true)

<div class="a">爷
        <div class="b">爸
            <div class="c">子</div>
        </div>
    </div>
    <script>
        let a = document.querySelector('.a')
        let b = document.querySelector('.b')
        let c = document.querySelector('.c')
        a.addEventListener('click',function(){
            console.log(a);
        },true)//捕获
        b.addEventListener('click',function(){
            console.log(b);
        },true)//捕获
        c.addEventListener('click',function(){
            console.log(c);
        })
    </script>
阻止事件流动
事件对象.stopPropagation()

可以把事件限制在当前元素内

阻止标签的默认行为

事件对象.preventDefault()
事件委托

通过给父元素绑定事件,事件触发,判断一下当前触发事件的元素target

事件对象.target    可以获得真正触发事件的元素