2013-08-30 18 views

risposta

29

Questo dovrebbe fare il trucco. Indica che quando la barra spaziatrice viene premuta sulla pagina/documento non solo impedisce il suo comportamento predefinito, ma ritorna allo stato originale.

return false sembra includere preventDefault. Source

Controllare JQuery API per ulteriori informazioni sugli eventi KeyDown - http://api.jquery.com/keydown/

window.onkeydown = function(e) { 
    return !(e.keyCode == 32); 
}; 

JQuery esempio

$(document).keydown(function(e) { 
    if (e.which == 32) { 
     return false; 
    } 
}); 

EDIT:

Come @ ambra-de-nero ha dichiarato "il codice precedente bloccherà la pressione tasto spazio sugli ingressi HTML ". Per risolvere questo si e.target esattamente dove si desidera bloccare la barra spaziatrice. Questo può impedire alla barra spaziatrice di bloccare altri elementi come gli input HTML.

In questo caso, specifichiamo la barra spaziatrice insieme al bersaglio del corpo. Ciò eviterà che gli input vengano bloccati.

window.onkeydown = function(e) { 
    if (e.keyCode == 32 && e.target == document.body) { 
    e.preventDefault(); 
    } 
}; 

NOTA: Se si sta utilizzando jQuery utilizzare e.which invece di e.keyCodeSource.

The event.which property normalizes event.keyCode and event.charCode

JQuery agisce come un normalizzatore per una varietà di eventi. Se questo è una sorpresa per chiunque stia leggendo questo. Raccomando di leggere la loro documentazione Event Object.

+1

Questo codice può bloccare premendo il tasto spazio sull'input HTML. È necessario verificare (e.target === document.body) qui la risposta corretta completa: http://stackoverflow.com/a/22559917/3120495 – Ujeenator

0

Hai provato a catturare l'evento keydown in javascript? Se si sta utilizzando jQuery è possibile leggere più di catturare gli eventi chiave qui: http://api.jquery.com/keydown/

Se non siete è possibile acquisire e ignorare la barra spaziatrice pressione del tasto come descritto qui: https://stackoverflow.com/a/2343597/1019092

+0

@Alberto - assicurati di leggere la parte della risposta che dice * "questo è il comportamento previsto nella maggior parte dei browser. tutto il tempo e mi sento estremamente infastidito quando non funziona in una pagina. "* –

6

rilevare se la barra spaziatrice è essere premuto. Se lo è, quindi impedire il suo comportamento predefinito.

document.documentElement.addEventListener('keydown', function (e) { 
    if ((e.keycode || e.which) == 32) { 
     e.preventDefault(); 
    } 
}, false); 
Problemi correlati