首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在html dom准备就绪后对“新建链接单击”调用ajax

如何在html dom准备就绪后对“新建链接单击”调用ajax
EN

Stack Overflow用户
提问于 2020-09-16 15:00:50
回答 1查看 37关注 0票数 0

在完全加载HTML之后,我在表单submit上调用ajax,得到的结果是:

代码语言:javascript
复制
<a data-nonce="https://hypley.com?wp_nonce=2db70bc9fb" id="resend_email">here</a></strong>

现在,再次调用该链接上的ajax:

代码语言:javascript
复制
$("#resend_email").on("click", function (e) {
    e.preventDefault();
    alert(1);
    var user_login = $("#user_login").val();
    console.log( user_login );
});

但这不起作用,我的意思是至少不给我看警报。

你知道为什么吗,我该怎么解决呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-16 15:05:32

我假设您在AJAX运行之前设置了JS,对吗?在这种情况下:使用委托事件代替。

代码语言:javascript
复制
$(document).on("click", "#resend_email", function (e) { // <-- see second argument of .on
  e.preventDefault();
  alert(1);
  var user_login = $("#user_login").val();
  console.log( user_login );
});

它不能工作的原因是,当DOM被构造并且从jQuery返回的jQuery集合为空时,#resend_email无法找到id #resend_email的元素(它的长度为0)。这意味着,您附加的单击处理程序没有可以附加到的元素,因此jQuery不附加事件侦听器。

简而言之:委托事件通过将侦听器附加到已经存在的元素来解决该问题,并在调用处理程序时扫描事件目标元素。如果它与指定的选择器匹配,则调用处理程序。您可以了解委托事件以及jQuery文档中的工作方式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63922840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档