通过jq选择器捕获a标签触发ajax事件请求到新的页面添加到指定div内,div内的a标签无法被选择器捕获怎么解决?

发布于 2022-09-07 21:07:42 字数 262 浏览 19 评论 0

问题:一个页面内有许多的a标签,通过jq选择器进行捕获后触发ajax请求到HTML代码插入到指定的容器内(<div id="指定容器"></div>),容器内的a标签无法被jq选择器捕获。
需求:

  1. 在页面中,点击容器外的a标签请求(后台)到的HTML放入指定容器内[已经实现]
  2. 点击容器内的a标签刷新容器内的旧的HTML代码,将新请求到的HTML代码放入其中[目前问题所在]

补充:公司不允许iframe

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷心人i 2022-09-14 21:07:42

使用jQuery on

$(#容器ID).on(“click”, "a", function(e){
// code
})

静若繁花 2022-09-14 21:07:42

就是事件委托,另一个答案已经给了一个简单的范例。我详细讲一下,假设你的页面结构是:

<body>
  <div>
    <a href="" class="red"></a>
    <a href="" class="green"></a>
  </div>
  <a href="" class="red"></a>
</body>

其中a标签是你所说的指定的事件源,那么你可以在body上委托监听a元素的事件。
Jquery的话就是

$("body").on("click","a",function(e){ //这里的"a"是选择器
    //someThing
})

你的代码中涉及动态增减HTML元素,并且要统一绑定事件,
事件委托就是在这种情形下使用的。

至于绑定的地方,看以是所有需要委托的元素的上一级,或者最外层的body、ducument都可以

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文