jquery动态生成元素怎么绑定事件
今天小编给大家分享一下jquery动态生成元素怎么绑定事件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
公司主营业务:成都网站建设、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出新北免费做网站回馈大家。
项目里有个需求,需要动态添加dom元素(button),并可以实现点击事件。这个事件可以用onclick属性添加在元素里,也可以通过js查找dom元素注册点击事件,本着表现与业务分离的原则,我用js注册元素的点击事件。
$(row).find("td:last-child").append(`
`);
$(index + "sbutton").click(function(){
sendEvent(data);
});
但是跑起来后,这个事件是没有用的,原因是什么呢?
因为这是动态添加的元素,在代码执行到注册事件这一步时,添加的dom元素还没有在界面渲染完成,这时,注册事件是无效的。
如何平衡这个矛盾,即要用js注册实现表现与业务分离,又要实现元素的事件注册?
下面就是解决方案:
$(document).on('click', "#" + index + "sbutton", function () {
sendEvent(data);
});
on() 和 click() 二者在绑定静态控件时没有区别,但是如果面对动态产生的控件,只有 on() 能成功的绑定到动态控件中,on其实整合了delegate的委托功能,可以实现这种委托绑定事件。
以上就是“jquery动态生成元素怎么绑定事件”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。
网站栏目:jquery动态生成元素怎么绑定事件
分享链接:http://scyanting.com/article/jshcid.html