[英]$(document).on(..) event works but not $(“body”).on(..) for dynamically generated element
我已经动态创建了元素
<a class="update-link">
path: body > div#MySection > table> tbody > tr > td > div > a.update-link
。
当我使用绑定事件
$(document).on("click", ".update-link", fn)
事件被触发。
当我使用$("body")
或$("#MySection")
,不会触发该事件。 $(document)
可以工作,但是由于范围大而效率低下。 为什么更具体的选择器不起作用?
您可以通过事件委托传递上下文:
$(() => { $(document, ".sec", "button").on("click", () => { console.log("clicked"); }); $(".sec").append("<button>Test</button>"); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <section class="sec"></section>
因此,在您的情况下, .sec
将是body
或#MySection
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.