2014-02-08 129 views
1

我有這樣的事件處理程序看起來像:

$(document).on('click', 'a.close, #mask', Popup.close); 

,我無法弄清楚如何改變功能(Popup.close)爲此事件動態。 Popup.close變量是一個本地函數,可以通過調用Popup.setClose(func)來設置,我希望這會改變這個事件被觸發時調用的函數。然後我意識到我可能不得不解除綁定事件,並且每次我想要更改Popup.close()函數時綁定新函數。無論如何,我無法弄清楚如何使用.on('click',...)方法解除綁定和事件。

所以我問的是什麼是改變使用.on()方法綁定jQuery事件的執行函數的最佳方法? 我感謝您的幫助。

回答

1

您可以使用.off("click")刪除該事件,然後附加新事件,但會刪除所有點擊事件。

$(document).off('click'); 

或者保留可能已連接的其他事件:

$(document).off('click', 'a.close, #mask'); 

JS小提琴:http://jsfiddle.net/3Xzjj/

+0

嗯雅,應該工作。還有其他更有效的方法嗎?沒有解除綁定事件,是否無法更改處理函數? –

+0

你可以將方法'$(document).off(「click」,「a.close #mask」)鏈接到(....',除此之外我不知道更好的方法。 –

+0

ok以及我得到它的工作。感謝您的幫助! –