JQuery中关于事件委托trigger自动执行的问题

JQuery中关于事件委托trigger自动执行的问题,第1张

$('#ul1').on("click","li",function()

这个的意思,就是给#ul1里面的每个li绑定click事件,并把事件触发后的处理都委托给#ul1。表面上看事件是由#ul1绑定的,但实际触发事件的是里面的li,所以直接用trigger来触发#ul1的click事件是无效的!

改成这样就有效:

$(function(){

   $('#ul1').on("click","li",function(){

      $(this).prepend("我是新的")

   }).find("li").trigger("click")

})

或者

$(function(){

   $('#ul1').on("click","li",function(){

      $(this).prepend("我是新的")

   })

   $('#ul1 li').trigger("click")

})

可以用事件委托,jquery提供on()方法(jquery 1.7.0 以上版本)来委托绑定事件:

<ul class="list">

    <li><a href="javascript:">导航1</a></li>

    <li><a href="javascript:">导航2</a></li>

</ul> $('.list').find('a').on('click', function(){

    $(this).addClass('active').siblings().removeClass('active')

})

这样.list里通过js动态创建的a节点也能响应click事件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11579955.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存