jquery - 在 C# MVC 的 ajax jquery 中创建 Link() 时不调用 Click 事件
问题描述
解决方案
那是因为在被调用的时候$('.btnOpen').click
运行在任何存在的东西上body
,而你的 ajax 响应当时不在体内。因此,事件处理程序未注册到您的新链接。
相反,您应该使用来自 jQuery 的委托事件处理程序来使其动态侦听您的 DOM:
$('body').on('click', 'a.btnOpen', function () {
alert("The Link was clicked");
});
function add() {
$('#content').append('<a href="#" class="btnOpen">Click me dynamically</a>');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="content">
<a href="#" class="btnOpen">Click me</a>
</div>
<button onclick="add()">Add link</button>
您希望将事件绑定到您知道存在的事物,并且尽可能接近您动态添加的内容。因此,例如,如果它们都驻留在一个 div 中,则使用该 div 创建.on
处理程序。
推荐阅读
- kvm - virsh 功能不包括 qemu 或 kvm
- laravel - Laravel 的 belongsTo 关系依赖于父表列
- selenium - 从源代码构建 Selenium-server-standalone 3.141.59
- python - Scapy http 层未正确导入
- ssl - server.crt 认证更新 1 年
- javascript - 如何使用对象中的键过滤 arya 并创建新对象
- nodemcu - nodemcu 未定义常量 uart.PARITY_NONE
- javascript - 单独的 html 用于初始下载 chrome 扩展
- javascript - 谁能非常简单地向我解释一下在 JavaScript 中的任务列表上下文中原型继承是什么?非常困惑的新JS学生
- sql - 如何过滤分组结果以匹配多个值?