当我replaceWith
一个元素带出一个DOM,然后replaceWith
它回来,注册到它的事件不会触发。我需要事件保持完好。活动没有注册后replaceWith
这里是我的javascript:
var replacement = $(document.createElement('span'));
var original = $(this).replaceWith(replacement);
replacement
.css('background-color', 'green')
.text('replacement for ' + $(this).text())
.click(function() {
replacement.replaceWith(original);
});
在演示中,当你点击一个元素,它会被替换使用replaceWith
另一个元素。当您单击新元素时,将使用replaceWith
替换为原始元素。然而,点击处理程序不再工作(我认为它应该)。
您是否最终使用活动重新附件,或者您是否能够使Live活动正常工作?我正在做同样的事情,并希望从您的经验中学习。 – 2011-02-04 03:00:52
@Erick T,我很抱歉,但我真的不记得了。差不多两年前我问过这个问题。我认为使用`$ .fn.live`不起作用,因为我正在处理实际的元素,而不是选择器。 (`$ .fn.delegate`(它当时不存在)可能会作为`live`替代品)。由于我选择的答案,我假设我最终重新附加了事件处理程序。您也可以尝试深入克隆元素(IIRC可能会将事件处理程序保留在最新的jQuery中)。 – strager 2011-02-04 03:07:49