javascript - 如何 append 一些代码并使其与已加载的 js 一起工作?

标签 javascript jquery append

我正在努力实现的一个简单示例:

$('.test-link').click(function(e) {
  e.preventDefault();
  alert($(this).attr('href'));
});
$('.test-form').submit(function(e) {
  e.preventDefault();
  $(this).append('<a href="testing" class="test-link">Click here</a>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form class="test-form">
  <input type="submit">
</form>

当提交表单时,它成功地创建了带有类“test-link”的链接,该类具有准备好处理点击的功能。单击时我需要触发现有功能,在这个例子中它应该提醒“测试”,但该链接作为常规链接工作。

最佳答案

考虑使用 jQuery 的 .on() 方法来确保您的事件逻辑绑定(bind)到将来添加到 DOM 的元素。

例如,您可以这样更改代码:

$(function() {

$('.test-form').submit(function(e) {
  e.preventDefault();
  $(this).append('<a href="testing" class="test-link">Click here</a>');
});
  
$('body').on('click', '.test-link', function(e) {

  e.preventDefault();
  alert($(this).attr('href'));
});

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<form class="test-form">
  <input type="submit">
</form>

这意味着您的click 处理程序将为当前存在的任何匹配元素或稍后添加的元素(即在您的表单提交之后)调用。

欲了解更多信息,see the documentation对于 on()。希望这对您有所帮助!

关于javascript - 如何 append 一些代码并使其与已加载的 js 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52957154/

相关文章:

python - 每次有新文档时,我需要帮助在列表中创建新列表时 append 文本文件中的单词

javascript - 检测 UIWebView 中的 Javascript/Ajax 更改

javascript - Jquery 选择器在 Chrome 中不起作用?

javascript - AngularJS 错误 : Unknown provider: $intervalProvider <- $interval <- inputsWatcher <- inputDirective

javascript - 窗口滚动条触底查询更多数据

jquery - 在 jQuery 中将 div 包裹在 2 个连续元素周围

Firefox 中的 jQuery .append() : vertical scrollbar appears?

javascript - 压缩类似的 IF 语句

javascript - 根据 rails 中上述下拉列表的选择禁用下拉列表

jquery - 使用jquery append 多个变量