jquery增加button事件οnclick_jq: 事件-委托

本文探讨了在jQuery中如何处理动态添加元素的事件绑定问题,特别是针对动态生成的li元素。通过事件委托和on方法,可以实现对这些元素的事件监听。此外,还介绍了如何解除事件绑定、只执行一次的事件函数one方法,以及自动触发事件trigger的用法,包括传递参数和模拟系统及自定义事件。
摘要由CSDN通过智能技术生成

由来:

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<button>增加</button>
<script src="../jquery-3.4.1.js"></script>
<script>
     $('li').on('click', function() {
         console.log($(this).text())
     })
     $('button').on('click', function() {
         $('ul').append(`<li>${$('li').length + 1}</li>`)
     })
</script>

c73f63d511ffcccfff1e0ebc2f570006.png

获取不到动态增加li的事件函数

事件委托

$('ul').on('click', 'li', function() {
     console.log($(this).text())
    })
$('button').on('click', function() {
     $('ul').append(`<li>${$('li').length + 1}</li>`)
})

e9664d52497e20f387417a024a9b150e.png

使用on方法中使用事件的时候可以在里面存函数

$('ul').on('click', 'li', {name: 'fanghuayong'}, function() {
    console.log(e.data)
})

5ac1f6fb5c6c2b169d2f94e93d0ef02c.png

解除事件绑定: 就这么简单

$('button').off('click')

1a62b03a9ae16347ce6d27a271d20303.gif

如果有多个绑定事件函数,只取消其中一个,把事件函数引用值传入即可,如:

function show() {
    console.log(123)
}
$('button').on('click', show)
$('button').off('click', show)

只执行一次的事件函数 one方法

可以用于登录之类的地方,如果不是必须登录,可以做点击登录的时候再加载html结构,达到减少结构,使加载时间更快。

$('button').one('click', function() {
    $('ul').append(`<li>${$('li').length + 1}</li>`)
})

36c8110d436ba0ba34d4b78c3bac29b2.gif

自动触发的事件 trigger

可以在这里传值给事件函数

$('button').trigger('click')

刷新就自动执行点击事件

可以触发系统事件(click等),也可以触发自定义事件:

$('li').on('color', function(e, a, b) {
 $(this).css('color', 'red')
    })
 $('button').click(function() {
 $('li').trigger('color')
    })

56e7eac70b1ee14e86a670d2ac30eace.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值