写点什么

jQuery 的事件绑定

作者:Jason199
  • 2022 年 7 月 15 日
  • 本文字数:2150 字

    阅读完需:约 7 分钟

jQuery 的事件绑定

jQuery 的事件绑定

 1. on()

        事件绑定, 根据传递不同的参数做不同的事情

        1-1. on(事件类型, 事件处理函数)

          直接绑定事件, 有隐式迭代

//1-1. on(事件类型, 处理函数)     $('ul > li').on('click', function () {      console.log(this)     })
复制代码

     

1-2. 元素结合.on(事件类型, 选择器, 事件处理函数)

          事件委托的绑定

          把选择器元素委托给元素集合里面的元素

      注意: 选择器元素要是 元素集合 内元素的后代元素

// 1-2. on(事件类型, 选择器, 处理函数)// 给 li 做了一个事件委托, 委托给 ul 来做    $('ul').on('click', 'li', function () {     console.log('我执行了')// this 就是你点击的那一个元素     console.log(this)    })document.querySelector('ul').onclick = function (e) {       if (e.target.nodeName === 'LI') {        console.log('我执行了')        console.log(this)     } }
复制代码

        1-3. 元素集合.on(事件类型, 复杂数据类型, 事件处理函数)

          给元素集合内的所有元素绑定事件

          这个复杂数据类型是事件触发的时候, 传递给事件里面的参数

          在事件对象里面有一个叫做 data 的成员, 就是你传递进来的参数

// 1-3. on(事件类型, 复杂数据类型, 事件处理函数)     $('li').on('click', { name: 'Jack' }, function (e) {       console.log('我执行了')       console.log(e)     })
复制代码

        1-4. 元素集合.on(事件类型, 选择器, 数据, 事件处理函数)

          事件委托的形式, 带上传递参数

          把选择器所属的事件, 委托给了元素集合内的事件

          数据位置, 就是在事件触发的时候传递给事件处理函数的参数

// 1-4. on(事件类型, 选择器, 数据, 事件处理函数)     $('ul').on('click', 'li', 'hello world', function (e) {       console.log('我执行了')       console.log(e)     })
复制代码

        1-5. 元素集合.on({ 事件类型 1: 事件处理函数, 事件类型 2: 事件处理函数, ... })

          一次性给元素绑定多种事件

          没法传递参数和事件委托了

// 1-5. on({ 多个事件 })     $('li').on({      click: function () { console.log('点击事件') },       mouseover: function () { console.log('移入事件') }     })
复制代码


2. one()

        用来绑定事件的方法

        和 on() 方法的参数和使用形式一模一样

      只不过绑定的事件只能执行一次

// 2. one()     $('li').one('click', function () { console.log('我被点击了') })
$('ul').one('click', 'li', function () { console.log('我被点击了') }) $('li').one('click', { name: 'Jack' }, function (e) { console.log(e) }) $('ul').one('click', 'li', 'hello world', function (e) { console.log(e.data) }) // $('li').one({ click: function () { console.log('点击事件') }, mouseover: function () { console.log('移入事件') } })
复制代码

3. off()

        用来解除事件绑定的

        使用方法:

          1. 元素集合.off(事件类型)

            解除元素身上该事件类型的所有事件处理函数

          2. 元素集合.off(事件类型, 事件处理函数)

            解除元素身上该事件类型的某一个事件处理函数

// 3-1. off(事件类型)// 把 click 事件的所有事件处理函数全部解除     $('li').off('click')// 3-2. off(事件类型, 事件处理函数)     把 click 事件的 handlerA 事件处理函数解除     $('li').off('click', handlerA)
复制代码

4. trigger()

        用 JS 代码的方式来触发事件

        使用方法: 元素集合.trigger(事件类型)

$('li:first').trigger('click')

jQuery 的事件函数

jQuery 给我们提供了一些简洁的绑定事件的方式

        把一些常用事件直接封装成了函数

          click()

          mouseover()

        这些方法可以直接使用, 带有隐式迭代

        快捷绑定事件

          使用方法:

            1. 元素集合.事件类型(事件处理函数)

            2. 元素集合.事件类型(传入事件处理函数的参数, 事件处理函数)

// 1. 绑定点击事件     $('div').on('click', function () { console.log('点击事件触发') })// 使用事件函数     $('div').click({ name: 'Jack' }, function (e) { console.log('点击事件', e) })     $('div').click(function (e) { console.log('点击事件', e) })
复制代码

jquery 唯一的特殊事件

        hover()

        一个结合了移入移出的事件

        使用方法: 元素集合.hover(移入的事件处理函数, 移出的事件处理函数)

        如果你只传递一个参数,  那么移入移出都触发

// 2. 特殊事件 hover     $('div').hover(       function () { console.log('移入') },       function () { console.log('移出') }     )
复制代码


发布于: 刚刚阅读数: 3
用户头像

Jason199

关注

还未添加个人签名 2022.04.29 加入

一条努力上岸的咸鱼

评论

发布
暂无评论
jQuery 的事件绑定_jquery_Jason199_InfoQ写作社区