有沒有辦法重置當前頁面?免費的所有事件處理程序,刪除任何由Jquery切換的CSS,用簡單的話來說,將頁面恢復到原始狀態而不刷新?jquery:如何釋放所有的事件處理程序,dom的變化?
回答
refresh/reload page. There's no other way.
我對OP的帖子發表了評論。
但想到這一點,我認爲有一種方法。
在css部分,動畫正在style
屬性上完成。刪除style
屬性重置動畫中的元素。但請注意,如果您使用style
屬性來設置元素的樣式,那麼該元素也將被刪除。
在綁定事件上,您可能想要綁定命名空間事件。例如,結合點擊會是這個樣子,
$('#someID').bind('click.toBeRemove', function(){...})
所以,取消事件很容易爲$('*').unbind('.toBeRemove')
。留下其他原始事件(在本例中爲點擊事件)。
使用插件時,請使用那些具有.destroy()
方法的方法,該方法將刪除元素上的功能和樣式。
但這不是100%肯定工作。只是一個理論。有這麼簡單的方法。 - 是的!沒有$(window).reset()
會重置頁面而不重新加載。
在給出「無法完成」的評論/回答之前,總是有一個好主意猶豫一下。 :o)那麼爲什麼事件的名稱空間? – user113716 2010-10-06 03:24:47
以及我的目的,通過迭代每個元素來移除所有事件處理程序就足夠了。謝謝你的回答。 – KJW 2010-10-07 23:44:41
好的,這裏有一個解決方案 - 在你做任何事情之前捕獲一個body
的克隆,然後當你需要重置時,用這個克隆替換整個body
。
var original = $('body').clone();
$('#reset').click(function() {
$('body').replaceWith(original);
});
當然,這不會撤消你做其他地方,任何改變,例如在head
,但它仍然比你有其他選項稍微好一點吧?
請參見:http://jsfiddle.net/uevrM/
編輯:剛剛意識到,這也不會殺了與live
或delegate
創建的任何事件處理程序。所以,不,這不是100%乾淨。
+1,因爲它該死。 – 2010-10-06 04:03:24
它應該照顧'.delegate()'處理程序,因爲它們不會再被觸發,因爲它們被連接到它們各自的容器。它沒有做的是清除jQuery存儲的任何數據/事件處理程序。它只是將它與元素分離,所以你仍然想要刪除這些數據。儘管如此,它可能與'delete jQuery.cache'一樣簡單。 – user113716 2010-10-06 04:09:56
- 1. 如何釋放事件處理程序
- 2. 釋放JavaScript事件處理程序
- 3. 如何刪除Jquery中的所有Click事件處理程序
- 4. JQuery的變化事件處理程序不工作在CoffeeScript
- 5. 如何從事件中刪除所有事件處理程序?
- 6. jQuery的多選 - 選擇所有事件處理程序
- 7. 這和DOM在事件處理程序
- 8. 使用jQuery訂閱DOM事件的多個處理程序
- 9. jQuery事件處理程序
- 10. jQuery事件處理程序
- 11. 如何刪除所有的事件處理程序
- 12. 如何等待骨幹中的所有事件處理程序?
- 13. 如何斷開滾動事件中的所有處理程序?
- 14. 如何獲取YUI事件處理程序中的DOM節點?
- 15. jQuery的:如何確保事件處理程序連接到所有相關的元素在DOM
- 16. 如何在事件重寫jQuery的事件處理程序
- 17. 如何刪除「按鈕」的「點擊」事件的所有事件處理程序?
- 18. 通模擬DOM事件處理程序的指令沒有jQuery的
- 19. C#如何取消訂閱給定事件的所有事件處理程序?
- 20. 事件處理程序的jQuery重新
- 21. JQuery中的事件處理程序
- 22. window.addEventListener與jQuery的事件處理程序
- 23. jQuery的事件處理程序堆疊
- 24. jQuery的事件處理程序隊列
- 25. 簡單的jQuery事件處理程序
- 26. 調用jQuery的事件處理程序
- 27. jQuery點擊事件處理程序附加到DOM元素
- 28. protobuf網:如何序列化的事件處理程序
- 29. 如何在.NET中處理事件時釋放所有COM對象
- 30. 有條件的事件處理程序
刷新/重新加載頁面。沒有別的辦法。 – Reigel 2010-10-06 02:19:53