2017-09-26 49 views
0

我有js代碼,當我按下鍵38,40 13時,這些函數分別工作。 但我想要做的是,當我點擊按鈕的keydown功能塊將禁用, 當我懸停這個按鈕,這個的keydown功能塊將被啓用。單擊按鈕後如何停止keydown函數

$(document).keydown(function(e){ 
if (e.keyCode == 38) { 
    verticalSlideDown(); 
    //console.log("pressed key for Down : "+e.keyCode); 
} 
if (e.keyCode == 40) { 
    verticalSlideUp(); 
    //console.log("pressed key for Up: "+e.keyCode); 
} 
if (e.keyCode === 13) { 
    var div= $(".scroll-inner-container"); 
    //console.log("pressed key for stop : "+e.keyCode); 
    div.stop(); 
} 
}); 

這是我的HTML按鈕:

<button class="keyboard-btn">click here</button> 
+0

你可以使用jQuery'()'和'關()'添加和刪除動態事件處理程序:http://api.jquery.com/off/ – Kokodoko

回答

3

只需創建一個標誌。

懸停時啓用,點擊時禁用。

var controlsEnabled = false; 

$(myButton).hover(function() { 
    controlsEnabled = true; 
}); 

$(myButton).on('click', function() { 
    controlsEnabled = false; 
}); 

$(document).keydown(function (event) { 

    if (controlsEnabled) 
    { 
     // rest of code here 
    } 

}); 
+0

非常感謝你@Lars .. !它的工作原理,但我不知道這是問題或不是單擊event.when我點擊這個按鈕時......同時光標保持懸停在這個button.for懸停事件永遠是真的......我能做什麼爲了那個原因..?有什麼想法。 – Masud001

+0

懸停事件將重寫單擊事件,因爲它會被重複調用,而不是單擊事件,每次單擊都會調用一次。我不知道如何在不改變設置的情況下解決這個問題。 –

+0

如何使用click event.first點擊啓用,然後點擊disable.this函數......? – Masud001

相關問題