2011-11-24 79 views
0

我不確定這是一個jQuery錯誤(使用1.7.1)還是它的意思是這樣(我不明白爲什麼它會是這樣,但不管):

試試這個jsfiddle:http://jsfiddle.net/qFLpe/1/

基本上,我可以使用JS創建一個HTML塊,將事件綁定到它,然後使用var clones = $(elem).clone(true, true)將事件存儲在變量中。乍一看,它的行爲好像它工作正常。綁定事件的元素從DOM中擦除,然後從變量中恢復。你可以點擊他們,他們會運行綁定事件。

更新:它看起來像它只是失去了活動的第二次$的.html(克隆)被調用時,無論它的XHR或不...

但是...一旦任何AJAX請求運行...事件不再受限制? HTML仍然存在,但不是事件。我不太確定爲什麼?這就像AJAX事件以某種方式重置存儲在該變量中的克隆事件......?

回答

2

使用$.live,工作正常。

我不認爲它與$.get有關;評論它產生相同的不工作,與bind

clone文檔頁面上的最後一個註釋:

[...]但要知道,像html的功能()從節點下降的數據和事件。

不知道第一個html與克隆,但。

+0

哦,非常棒!感謝那。我會用現場。是的,我很困惑,爲什麼它在XHR被替換之前使用.html()而不是之後工作... – Benno

+0

@Benno我也是。我想知道如果沒有第一個.html替換克隆,使用綁定是否會起作用?呃,好吧。 –

+0

@Dave牛頓它使用綁定並註釋掉第一個'.html'? http://jsfiddle.net/qFLpe/2/到底是什麼!如果您再次運行XHR,但從此停止工作。也許'克隆'是通過引用傳遞給HTML的對象被剝離,然後第二次它添加它停止工作?..應調查 – Benno