【发布时间】:2010-11-24 10:43:20
【问题描述】:
假设我有一些 jQuery 代码将事件处理程序附加到所有具有 .myclass 类的元素。
例如:
$(function(){
$(".myclass").click( function() {
// do something
});
});
而我的 HTML 可能如下:
<a class="myclass" href="#">test1</a>
<a class="myclass" href="#">test2</a>
<a class="myclass" href="#">test3</a>
这没有问题。
但是,请考虑 .myclass 元素是否在未来某个时间写入页面。
例如:
<a id="anchor1" href="#">create link dynamically</a>
<script type="text/javascript">
$(function(){
$("#anchor1").click( function() {
$("#anchor1").append('<a class="myclass" href="#">test4</a>');
});
});
</script>
在这种情况下,test4 链接会在用户点击a#anchor1 时创建。
test4 链接没有与之关联的 click() 处理程序,即使它具有 class="myclass"。
基本上,我想编写一次click() 处理程序,并将其应用于页面加载时出现的内容,以及稍后通过AJAX / DHTML 引入的内容。知道如何解决这个问题吗?
【问题讨论】:
-
这里有一篇详细介绍如何为动态元素绑定点击事件goo.gl/zlEbnv
-
纯 javascript (vanilla js) 解决方案:stackoverflow.com/a/27373951/1385441
-
也许这篇文章会有所帮助:dontrepeatyourself.org/post/…
标签: javascript jquery events dhtml