无法用事件委托监听新添加元素的情况下的处理方案

 

JS中用事件委托方式监听事件,是为了达到页面加载后新添加的元素也享有共同事件处理程序的效果的最佳方案。

但遇到了用引用第三方代码是非事件委托方式,且无法修改为事件委托方式处理时的无奈局面。

在尝试中发现了可以用重新引用相应 JS 文件,从而达到类似JS在新添加元素后重新执行一遍的效果,因此先前新添加的元素节点也被顺理成章地被带有事件监听。

示例代码如下:

HTML:

1 <script src="/static/home/js/main.js" id="mainjs"></script>

JS:

1     // jQuery语法
2     function refreshjs() {
3         $('#mainjs').remove(); // 移除旧的js引入标签
4         $('<script src="/static/home/js/main.js" id="mainjs"></script>').appendTo(document.body); // 重新引入相应的js文件,js重新执行,使事件监听也重新添加一遍
5     }
6     
7     refreshjs(); //在添加新的元素节点后,或其它需要重新添加事件的情况下调用

 

posted on 2018-04-25 02:45  Jeffid 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/jeffid/p/8935916.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值