2012-01-27 114 views
0

我有一個DIV,裏面有很多內容,我用detach()和after()把它放在文檔的其他地方。使用.detach()刪除事件?

在此之前,我使用.bind()將一些點擊事件放在DIV中的複選框上。

這似乎工作正常。

當我完成DIV時,我把它放回原來的位置。當我再次使用.detach()和after()的方法時,我的點擊處理程序似乎消失了。

這是detach()的正常行爲嗎?有沒有適當的方法來保存事件?

對於查詢頭腦,我的DIV包含一個窗體,在複選框上使用綁定點擊時具有一些驗證功能。分離用於將表單放置在模態對話框中,並在用戶關閉對話框時將其放回隱藏的DIV中。當用戶再次打開對話框時,當我遇到我的點擊事件丟失時。

+2

jQuery'detach()'應該保留事件處理程序和與元素相關的數據:你能在減少的小提琴中重現問題嗎? – fcalderan 2012-01-27 14:27:15

+1

不,'detach'會保留事件處理程序,查看文檔。如果遇到問題,那一定是別的。 – 2012-01-27 14:29:38

+1

問題:綁定(「點擊」)是否考慮了jQuery數據?我只是想知道是否我甚至需要使用detach(),而我可以使用remove()來代替。 – Matthew 2012-01-27 14:31:20

回答

0

因此,使用.detach()不會刪除事件。

我似乎無法重現這甚至用小提琴更接近我的實際代碼

http://jsfiddle.net/n874q/5/

我的問題是,一個複選框jQuery的陣列上我點擊功能是失敗(默默)在函數綁定時傳入。

我沒有解決問題,而是通過函數內的選擇器找到複選框,而不是將數組傳遞給函數。

謝謝。