2017-09-26 1 views
0

ich habe js code, wenn ich taste 38, 40 13 diese funktion arbeitet jeweils. aber, was ich tun möchte, ist, wenn ich diese Taste keydown Funktionsblock disable wird klicken , und wenn ich diese Taste, diese keydown Funktionsblock werden aktiviert, schweben .wie kiddown-funktion nach dem klicken einer taste

$(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(); 
} 
}); 

das ist mein html-Taste:

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

Sie können jQuery 'on()' und 'off()' hinzuzufügen und Event-Handler dynamisch zu entfernen: http://api.jquery.com/off/ – Kokodoko

Antwort

3

einfach eine Flagge erstellen.

Aktiviert bei Hover, deaktiviert bei Klick.

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

vielen Dank @ Lars .. ! es funktioniert.aber ich weiß nicht, es ist ein problem oder nicht mit click event.wenn ich auf diese schaltfläche klicken ... zur gleichen zeit cursor halten sie den schwebeflug über diese taste.für das schweben ereignis immer wahr ... was kann ich tun dafür..? hab eine Idee. – Masud001

+0

Das Hover-Ereignis überschreibt das Klickereignis, da es wiederholt aufgerufen wird, im Gegensatz zum Klickereignis, das einmal pro Klick aufgerufen wird. Ich weiß nicht, wie ich dieses Problem lösen kann, ohne das Setup zu ändern. –

+0

Wie kann ich click event.first click für aktivieren, und zweiten Klick für disable.this Funktion ......? – Masud001

Verwandte Themen