动态添加元素的事件绑定

Paste_Image.png

Paste_Image.png

今天在对接网站数据时,发现个bug,就是我动态添加的元素没办法直接使用它的事件;

点击左边的年份,切换具体的期数;

$(".menu-ul").empty();//清空该元素下面的子元素

for( var i = 1 ; i <= month; i ++ ){
    var li = "<li value='"+i+"'>"+year+"年第"+i+"期</li>";
    $(".menu-ul").append(li);//根据取得的year、month动态添加期数元素
}

然后点击相应期数,显示不同期数的内容;

$(".menu-ul li").click(function(){
    //获取相应的年份和期数,再通过ajax获取数据,显示数据      
});

那么问题来了,我动态添加的元素(li)找不到click事件,去百度了下,找到了解决办法,就是使用jquery的.on()函数:
on()支持直接在目标元素上绑定事件,也支持在目标元素的祖辈元素上委托绑定。在事件委托绑定模式下,即使是执行on()函数之后新添加的元素,只要它符合条件,绑定的事件处理函数也对其有效。
所以对自己的点击事件代码做了以下修改:

$(".menu-ul").on("click","li",function(){
    //获取相应的年份和期数,再通过ajax获取数据,显示数据      
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,850评论 19 139
  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 5,222评论 0 8
  • jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript...
    一木_qintb阅读 4,617评论 0 4
  • 有的时候吧,只想给群里的某些人发个红包,但总有一些伸手党会秒抢,还死皮赖脸的不吐出来,搞得很没有意思。 今天在使用...
    Xueming阅读 3,613评论 0 0
  • 是的 ,8岁!! 儿子8岁时跟我说他有个好主意,要画本书卖。我说好啊! 孩子对商业有兴趣,大概是我和他爸爸经常在饭...
    英国风格阅读 4,053评论 10 8

友情链接更多精彩内容