我正在尝试在表单元素之后插入一个链接来清除它们。
带有标题的演示代码不起作用:
h2 = $('h2');
clickytest = $('<a href="#" class="clicky">click me</a>').insertAfter(h2).click(function() {
$(this).append('foo');
});
但这样做:
h2 = $('h2');
clickytest = $('<a href="#" class="clicky">click me</a>').insertAfter(h2);
$('a.clicky').click(function() {
$(this).append('foo');
});
唯一的区别是我已经回去并重新选择了新元素,而不是使用insertAfter返回的内容。
另一方面,如果整个文档中只有一个 H2,那么第一个版本就可以了。这是怎么回事?我尝试过使用每个(),但我不确定jQuery在这里做了什么。
答案 0 :(得分:1)
我会坚持在移动它们之前将事件处理程序附加到元素,因为一些附件方法在它们返回的上下文上有所不同。在继续之前附加点击以使其始终有效,如下所示:
$('<a href="#" class="clicky">click me</a>').click(function() {
$(this).append('foo');
}).insertAfter('h2');
See here for a working sample(多个<h2>
元素)