Javascript $.clone with ajax XHR请求中断事件?

Javascript $.clone with ajax XHR请求中断事件?,javascript,jquery,ajax,clone,Javascript,Jquery,Ajax,Clone,我不确定这是一个jQuery错误(使用1.7.1)还是它的本意是这样(我不明白为什么会这样,但不管怎样): 尝试以下jsfiddle: 基本上,我可以使用JS创建一个HTML块,将事件绑定到它,然后使用var clones=$(elem).clone(true,true)for deep with events将其存储在变量中。乍一看,它的工作原理似乎很好。具有绑定事件的元素从DOM中擦除,然后从变量中恢复。您可以单击它们,它们将运行绑定事件 更新:第二次调用$.html(克隆)时,它似乎丢失了

我不确定这是一个jQuery错误(使用1.7.1)还是它的本意是这样(我不明白为什么会这样,但不管怎样):

尝试以下jsfiddle:

基本上,我可以使用JS创建一个HTML块,将事件绑定到它,然后使用
var clones=$(elem).clone(true,true)
for deep with events将其存储在变量中。乍一看,它的工作原理似乎很好。具有绑定事件的元素从DOM中擦除,然后从变量中恢复。您可以单击它们,它们将运行绑定事件

更新:第二次调用$.html(克隆)时,它似乎丢失了事件,无论它是否是XHR


但是。。。一旦任何AJAX请求运行。。。这些事件不再受约束了?HTML仍然存在,但没有事件。我不太清楚为什么??这就像AJAX事件以某种方式重置了存储在该变量中的克隆事件

使用
$.live
,这样就可以了

我认为这与
$无关;用
bind
注释它会产生相同的不工作性

请参见
clone
doc页面上的最后一条评论:

[…]但是请注意,像.html()这样的函数会从节点中删除数据和事件


不过,我不确定克隆后的第一个
html

哦,太棒了!谢谢你。我将使用live。是的,我很困惑,为什么在使用.html()替换XHR之前它还能工作,而在…@Benno-Me之后却不能。我想知道如果没有第一个,它是否可以工作。用bind将html替换为克隆?啊,好吧。@Dave Newton使用bind和注释第一个
.html
?,它确实有效?!我勒个去!如果您再次运行XHR,尽管它从此停止工作。可能
clones
是一个通过引用传递到HTML中的对象,它正在被剥离,然后在第二次添加时它就停止工作了?。。调查