jQuery事件操作

作者: const_express | 来源:发表于2019-02-23 11:55 被阅读0次

    简单方式注册/移除事件

    注册:jq对象 .on(‘事件名 例如click’,‘事件处理程序’)

    移除:jq对象.off(‘事件名’,‘事件处理程序’)

    事件处理程序在如果需要移除 就要单独写出来 然后调用就可以 个人感觉还是写外面吧。。万一我想移除了呢= =

    另外 如果给一个元素多次注册事件 也不会被叠加 因为他的底层本质是事件监听

    事件委托方式注册/移除事件

    在写之前还是先回顾一下事件委托吧。。。
    什么是事件委托呢 事件委托 就是为了优化程序 提升程序的性能 在事件类型一样的时候 可以把子孙元素委托给上级元素
    在原生js中 实现事件委托很麻烦 emmm
    步骤如下:
    给上级元素注册添加事件
    2.通过事件对象.属性 例如 target 哪个点击了 事件对象.target就代表谁 (可以说事件委托的核心就是target)
    3.可以选择用nodeName或者类名className 去检测触发的是哪个元素 或者触发的是不是指定元素 注意 在获取nodeName的时候 是要去找全部大写的节点名
    可以根据属性和属性值去判断点击的是不是这个元素

    注册:jq对象【被委托干活的】.on(‘事件名’,‘选择器’,‘事件处理程序’)

    其中 jq对象是那个被委托干活的 事件名是例如 click 这种的 选择器 是派活给jq对象的 事件处理程序还是和上面一样 要移除的话就写外面 里面调用

    移除:jq对象.off(‘事件名’,‘选择器’,‘事件处理程序’)

    在原生js里的 e.target 在jQuery里 用this表示
    只有点击选择器指定的元素 才会执行下面的代码

    模拟触发事件tigger(‘事件名’)

    语法:jq对象.tigger(‘事件名’)
    其实和直接的.click没啥区别 可能主要的区别就是 可以在console里写jq需要被触发的对象.tigger模拟触发(‘事件名’)

    事件对象

    事件对象。。大概就是e event了吧。。。。和原生js一样
    鼠标键盘事件和原生js差不多

    鼠标事件:

    参照浏览器:事件对象.clientX/Y
    参照文档:事件对象.pageX/Y
    参照元素:事件对象.offsetX/Y

    键盘事件:

    事件对象.keyCode 返回键码值
    事件对象:alt/shift/ctrlKey 返回布尔值 检测是否按下

    相关文章

      网友评论

        本文标题:jQuery事件操作

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