第一个问题是,当您在具有多个元素的jQuery集合上调用append时,会为每个元素创建要添加的元素的克隆,因此丢失了附加的事件观察器。
function handler() { alert('hello'); }
$('.add_to_this').append(function() {
return $('<a>Click here</a>').click(handler);
})
另一个潜在的问题可能是在将元素添加到DOM之前附加了事件观察器。我不确定是否有话要说,但是我认为这种行为可能不确定。一个更可靠的方法可能是:
function handler() { alert('hello'); }
$('.add_to_this').each(function() {
var link = $('<a>Click here</a>');
$(this).append(link);
link.click(handler);
});