对于append的dom元素添加事件的处理(怪我笨)

项目中需要在扫描二维码支付后每隔5秒请求交易信息,并弹出模态框。面对append动态生成的按钮无法绑定点击事件的问题,采用事件委托解决。同时,需确保每次支付后只弹出一个模态框并能手动关闭,当关闭最后一个模态框时,还需关闭遮罩层。文中提供了两种实现方法:通过遍历兄弟节点判断是否为最后一个模态框,或者检查父元素下子元素的display属性。整个过程在每次扫码支付后都需要进行验证,耗时较长。
摘要由CSDN通过智能技术生成

 

项目需求:扫描二维码,付款后,向服务器发送请求(每5s一次)交易信息,弹出模态框(重点是,付一次弹出一次)无数个模态框啊···。其次手动关闭每个模态框,当最后一个的时候关闭大遮罩层。

遇到的问题(1):无法给append出来的按钮元素添加点击事件,看都网上有live,bind,但是我这里不好使,所以还是用事件委托

解决代码(1):

$("#exampleModalLong-2").on('click', '.btnClose', function () {
   
})
//模态框的id  点击事件  目标元素  函数

遇到问题(2):如何设置多个模态框,手动点击关闭每一个模态框

解决代码(2):将遮罩层留在外面,作为append的目标点,然后不断向其中增加 ${html} 

html代码(引用的是bootstrap的模态框):

<div class="modal fade show" id="exampleModalLong-2" tabindex="-1" role="dialog" style="z-index:100000;display: none;background: rgba(78,78,78,0.6);position: fixed;"></div>

js代码(手动点击关闭每个模态框两种方法):

第一个笨方法:通过获取当前要关闭模态框,通过向上寻找兄弟节点,如果兄弟节点为0的时候,说明是最后一个模态框,关闭遮罩层,否则只关闭当前模态框,代码如下

$("#exampleModalLong-2").on('click', '.btnClose', function () {
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值