2012-07-03 103 views
0

我正在嘗試將事件添加到頁面卸載時觸發的元素。我想將事件發佈到元素,因爲我需要訪問私有函數。將卸載事件添加到div

我決定嘗試向我的元素添加一個卸載事件,然後在window.unload事件期間調用此函數,因爲元素從未正常傳遞卸載事件。

不幸的是我設法創建了一個無限循環,我嘗試使用jQuery函數'one'來試圖停止循環,並且還嘗試在第一次調用之後手動刪除卸載甚至綁定。仍然沒有運氣。我做了一個JsFiddle,但決定不鏈接它,因爲它會使你的瀏覽器崩潰,所以這裏是代碼。

<div id="myDiv"></div> 
$('#myDiv').one('unload', function() { alert('Infinite loop incomming. Sorry :('); }); 
$(window).unload(function() { $('#myDiv').unload(); }); 

任何人都可以提供任何建議或更好的解決方案嗎?

+0

什麼瀏覽器和操作系統您使用的?我無法用您提供的代碼重新創建無限循環。 –

+1

您打電話的警報只是打破卸載事件 –

+1

*我想將事件記錄到元素,因爲我需要訪問私人功能。*什麼? – Esailija

回答

1

我在另一個問題 - Add jQuery function to specific elements中找到了我正在尋找的東西。

本質上,我可以使用jQuery'bind'和'trigger'將自定義事件添加到DOM元素並在以後調用它。

例子:

<div id="myDiv"></div> 

    $('#myDiv').bind('myUnloadFunction', function() { alert('No more loop :D'); }); 

    $(window).unload(function() { $('#myDiv').trigger('myUnloadFunction'); });