2013-07-16 13 views

risposta

11
document.onkeydown = null 

Si potrebbe utilizzare jQuery per fare il vostro evento handeling per voi, il metodo utilizzato è meno comunemente usato e non permette più sottoscrittori.

un'occhiata alla documentazione qui:

http://api.jquery.com/on/

esempio:

$(document).on("keydown", function(){ 
    doStuff(); 
}) 
// unsubscribe all handlers 
$(document).off("keydown"); 
+0

potresti pubblicare una versione jquery per favore? – GibboK

+0

'document.onkeydown' è certamente vecchio ma è standardizzato e funziona in tutti i principali browser, incluso IE 6-8, e continuerà a funzionare nei browser futuri. Perché pensi che sia una cattiva pratica usarlo? –

+1

L'OP non ha _have_ per usare jQuery, potrebbe usare lo standard accettato di 'document.addEventListener ('keydown', function() {...})' https://developer.mozilla.org/es/docs/ DOM/elemento.addEventListener – MrMisterMan

1

Non è possibile rimuoverlo, è possibile collegare solo uno nuovo che non fa nulla, come:

document.onkeydown = function() {}; 

con jQuery si può fare:

$(document).on('keydown', myMethod); 

e di togliere

$(document).off('keydown', myMethod); 
+0

userei 'document.onkeydown = null' non c'è bisogno di mantenere un riferimento a una funzione vuota non necessaria –

+0

Le funzioni vuote sono grandiose! – adeneo

1

Il modo più semplice è impostato a NULL

document.onkeydown = null; 
+1

beh, questa risposta è un po 'in ritardo per circa 57 secondi per @Willem D'haeseleer – ardhitama

5

È possibile rimuovere con:

document.onkeydown = null; 

Se si vuole essere in grado per ripristinarlo, puoi prima salvarlo in una variabile:

var saved_keydown = document.onkeydown; 
document.onkeydown = null; 
//... later 
document.onkeydown = saved_keydown; 
Problemi correlati