js 事件

作者: lucky_yao | 来源:发表于2020-10-05 08:07 被阅读0次

    1:什么是事件?

    人与机的交互就是事件。

    2:事件类型:

    ui事件

    *onscroll 滚动条事件

    onload 页面加载触发

    unload 页面关闭触发

    onresize 改变浏览器窗口触发

    onabort 图像加载被中断触发

    error 错误信息时触发

    焦点事件(表单事件)

    *onfocus 获得焦点事件(没有冒泡,浏览器都支持)

    *onblur 失去焦点事件(没有冒泡,浏览器都支持)

    onfocusin 获得焦点事件(有冒泡,IE支持)

    onfocusout 失去焦点事件(有冒泡,IE支持)

    onselect 选中文本时触发

    *onchange 当改变一个元素的值且失去焦点时

    鼠标事件

    *onclick 当用户单击对象时

    *ondblclick 当用户双击对象时

    *onmouseout 移出事件

    *onmouseover 移入事件

    *onmousemove 移入元素的内部不断的移动时触发

    onmousedown 在用户按下了任意鼠标按钮时触发

    onmouseup 在用户释放鼠标按钮时触发

    键盘事件

    onKeydown: 当用户按下键盘上的任意键时触发。

    onKeypress: 当用户按下键盘上的字符键时触发。

    onKeyup: 当用户释放键盘上的键时触发。

    keyCode 返回键盘键对应的编码

    3:事件的传播机制?

    事件分为2种传播机制(事件流):

    1:冒泡 (IE提出的事件流是冒泡)
    
    2:捕获  (谷歌和火狐提出的事件流是捕获)
    

    4:什么是冒泡事件?

    1:冒泡事件是由微软公司提出的,从触发底部事件一直延续到最外层,这个现象就是冒泡!

    2:只有嵌套关系的标签和都是一样的事件才可能产生冒泡!

    5:阻止冒泡事件的方法:

    1:evt.stopPropagation() 无法阻止 IE 低版本事件冒泡;

    2: evt.cancelBubble = true;兼容 IE 低版本冒泡;

    6:阻止冒泡事件的兼容写法:

    if(evt.cancelBubble=true){

    evt.cancelBubble=true;

    }else{

    evt.stopPropagation();

    }

    7:封装阻止冒泡事件方法:

    function stopBubble(event){

        if(event.stopPropagation){
    
            event.stopPropagation();
    
        }else{
    
            event.cancelBubble = true;
    
        }
    
    }
    

    8:DOM0事件处理程序:

    1:简单来说就是所有的事件叫DOM0事件。
    
        举例:
    
        onclick,onmouseover,onmouseout....
    
        2:DOM就是文档对象模型,0是指这个事件的最初版本
    

    9: DOM2事件处理程序:

    1:addEventListener(事件,函数,布尔值)   绑定事件方法  IE不支持
    
        举例:
    
            addEventListener('click',function(){
    
            },false)
    
    2:是 true 的话是捕获事件,是 false 的话是冒泡事件;
    
    3:removeEventListener() 删除事件方法  IE不支持
    

    10: IE的DOM2方法:

    attachEvent('事件',函数)

    detachEvent('事件',函数)

    11:事件委托

    利用冒泡的原理,把事件加到父级上,触发执行效果。

    把该是自己的事件交给其他标签来完成,就是事件委托!

    把li的事件委托给父元素ul来完成。

    事件委托只能是把子元素的事件委托给父元素。

    12:事假委托的优点:

    1:提高代码性能,运行速度加快
    
    2:节省内存空间
    

    13: 事件源的兼容

    target 是event对象下面的属性,这个属性指向事件源

    event.target 是w3c的写法,ie浏览器不支持

    event.srcElement 这是IE的写法(兼容低版本IE)

    兼容写法

    var targt=e.target||e.srcElement;

    相关文章

      网友评论

          本文标题:js 事件

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