DOM--事件知识点复习

122 阅读3分钟

1.dom中注册事件有两种语法

        点语法:  只能注册一个‘同名’事件
        
        addEventListener语法 : 可以注册多个‘同名’事件
    
    2.点语法: 不能注册‘同名’事件
    
        2.1 注册: 事件源.事件类型 = 事件处理函数
        
        2.2 移除: 事件源.事件类型 = null
        
    3.addEventListener语法 : 可以注册多个‘同名’事件
    
        3.1 事件源.addEventListener('事件类型',事件处理函数)
        
        3.2 事件源.removeEventListener('事件类型',事件处理函数)
        
            * 只能移除具名事件
            

阻止默认事件

    1.默认事件 : 在html中,有少部分标签自带点击事件。 ( a标签, form表单 )
    
        a标签点击会默认跳转到href属性对应的链接
        
        form表单里面的按钮点击默认跳转到action属性对应的链接

    2.如果我们自己也要注册点击事件,那么就要阻止默认事件\
    
        e.preventDefault()
        

任何数据类型共同点(值类型,引用类型)

        * 都有变量赋值特点
        
    2.引用类型特点
   
        * 函数: 函数名()
        
        * 数组: 数组名[下标]
        
        * 对象: 对象名.属性名
        

1.事件对象 : 存储与事件相关的数据。 当我们触发事件的时候,浏览器会自动捕捉触发时的鼠标(坐标点)和键盘信息

(按键),存入一个对象中,称之为事件对象。

    * 事件对象: 存储与事件触发相关的数据
    
    * 事件对象是浏览器自动存储的,我们只需要获取即可
    
  
  2.获取事件对象 : 给事件处理函数添加形参  event | ev | e
    
  3.事件对象e常用属性和方法总结 :
  
    3.1 阻止默认事件(a和form)  :   e.preventDefault()
    
    3.2 获取鼠标触发点         :  e.pageX / e.pageY
    

2.复习键盘事件

    oninput : 键盘输入 (文本框内容有输入,实时获取输入框文本)
    
    onfocus : 键盘成为焦点
    
    onblur  : 键盘失去焦点
    
    onkeydown : 键盘按下 (监听enter键)
    
    onkeyup :  键盘松开

  2.获取键盘按键 : 有两种方式
  
    e.key : 获取按键字符串  'Enter'
    
    e.keyCode :  获取按键ASCII码(每一个按键对应一个数字) 
    

3.事件冒泡 : 当触发子元素的事件的时候, 所有的父级元素‘同名事件’都会被依次触发

    元素->父元素->body->html->document->window

  2.事件委托 : 给父元素注册,委托子元素处理
  
    事件委托原理 :  事件冒泡
    
    事件委托应用场景 : 
    
      (1)实际开发最多: 给动态新增的子元素注册事件
      
      (2)性能优化 : 如果所有的子元素都需要注册同名事件,只需要给父元素注册
      
    事件委托注意点 :
    
      (1)事件委托不能通过this找到子元素。 (this指向父元素)
      
      (2)事件委托需要通过什么属性找到子元素:  e.target
      

4.事件捕获 : 触发子元素的事件的时候,会从最顶级的父元素一级一级往里触发

    window->document->html->body->d父元素->元素
    

5.阻止事件流动 : 阻止冒泡 + 阻止捕获

    e.stopPropagation()