javascript - jquery为动态插入的元素绑定事件无效?
伊谢尔伦
伊谢尔伦 2017-04-11 10:01:00
[JavaScript讨论组]
$('.top-nav-son-li a').on('click',function(){
    alert(11);
})

a节点是动态插入的,但是为什么无效呢?
jquery版本 "jquery": "^3.1.1"
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
PHP中文网

on 有两种模式:

jquery on api
jquery on api 中文
第一种:
你那种 onclick 无差别

第二种:
采用 @StinsonZhao 的 on
事件委托绑定模式:
事件委托绑定模式下,即使是执行on()函数之后新添加的元素,只要它符合条件,绑定的事件处理函数也对其有效。

$('页面中存在的元素,父级或者其他祖先,最狠的就用 document').on('click','你需要绑定的 selector ',function(){
    alert(xx);
});

扩展

从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind()、 delegate()、
live()等事件函数。

上古时代动态绑定用delegate()live()

伊谢尔伦

因为是动态生成的,请使用事件代理

$('.top-nav-son-li').on('click','a',function(){
    alert(11);
})
黄舟

因为你的dom节点还没有渲染出来出来你的点击事件就绑定上了,
可以设置一个定时器,或者注意一下节点添加和事件绑定的顺序。

PHP中文网

动态插入的dom绑定事件,需要在dom插入完成后绑定事件,或者使用on的另一种写法

    $('ul').on("click",".top-nav-son-li a",function(){//ul为.top-nav-son-li非动态添加的父级
         alert(11);
    });
阿神

次序不对,等到你的a完全加载出来之后调用js,才能出来效果。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号