2017-08-30 127 views
1

我試圖禁用一個元素的mousedown事件,然後啓用它,而無需重新定義與事件相關的功能。 當我做$(this).off(mousedownEvent)事件相關丟失,我不想用$(this).on(mousedownEvent, function())啓用它。 有沒有辦法做到這一點?Jquery禁用mousedown事件,而不會丟失與事件相關的功能

+0

'我不想和$啓用它(這個)。在路上(mousedownEvent,函數() )爲什麼?執行'$(this).off/on(mousedownEvent,yourFunctionSignature)'' – Nope

+0

'是非常正常的你能詳細說明嗎?你是否在點擊元素時禁用了mousedown事件?然後當你再次點擊該事件時,你想在稍後的時候採取一些行動嗎? – Gsm

回答

0

就我看來是打造功能最簡單的方法則引用該函數是這樣的:

function myMouseEvent() { 
    // Do some stuff 
} 

然後你只傳遞給這樣的方法函數的引用:

$(this).off('mousedown', myMouseEvent); 
$(this).on('mousedown', myMouseEvent); 
3

難道你只是使用外部功能?

function doStuffOnMouseDown(evt) { 
    console.log('stuff happens here'); 
} 

/* ENABLE */ 
$(this).on('mousedown', doStuffOnMouseDown); 

/* DISABLE */ 
$(this).off('mousedown', doStuffOnMouseDown); 

/* RE-ENABLE */ 
$(this).on('mousedown', doStuffOnMouseDown); // no suprise, it's just the same ? 

這幾乎是添加和刪除事件,而不必重新定義整個函數體