2017-09-26 12 views
0

キー38,40 13を押すとjsコードが表示されます。 しかし、私は何をしたいが、私はこのの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に感謝.. !それはworks.but私はそれが問題であるかどうかわからないクリックevent.when私はこのボタンをクリックして...同時にカーソルがこのボタンの上にカーソルを置いてホバーイベントは常に真実である...私は何ができるそれは..?何か考えがある。 – Masud001

+0

hoverイベントはクリックイベントをオーバーライドします。クリックイベントは、クリックイベントごとに繰り返し呼び出されるため、クリックイベントごとに呼び出されます。私はセットアップを変更せずにその問題を解決する方法を知らない。 –

+0

どのように私はクリックevent.firstクリックを有効にするために使用することができます、そして、disable.this機能のための2回目のクリック......? – Masud001

関連する問題