温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

jquery动态生成元素怎么绑定事件

发布时间:2022-03-18 13:59:02 来源:亿速云 阅读:365 作者:iii 栏目:大数据

今天小编给大家分享一下jquery动态生成元素怎么绑定事件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

项目里有个需求,需要动态添加dom元素(button),并可以实现点击事件。这个事件可以用onclick属性添加在元素里,也可以通过js查找dom元素注册点击事件,本着表现与业务分离的原则,我用js注册元素的点击事件。

$(row).find("td:last-child").append(`<div ><button id="` +

index + `sbutton" name="send" class="btn btn-lg

                          btn-primary">指派</button><button id="` + index +

`hbutton" name="ignore"   class="btn btn-lg btn-primary">忽略</button></div>`

);

$(index + "sbutton").click(function(){

       sendEvent(data);

});

但是跑起来后,这个事件是没有用的,原因是什么呢?

因为这是动态添加的元素,在代码执行到注册事件这一步时,添加的dom元素还没有在界面渲染完成,这时,注册事件是无效的。

如何平衡这个矛盾,即要用js注册实现表现与业务分离,又要实现元素的事件注册?

下面就是解决方案:

$(document).on('click', "#" + index + "sbutton", function () {

sendEvent(data);

});

on() 和 click() 二者在绑定静态控件时没有区别,但是如果面对动态产生的控件,只有 on() 能成功的绑定到动态控件中,on其实整合了delegate的委托功能,可以实现这种委托绑定事件。

以上就是“jquery动态生成元素怎么绑定事件”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI