questa è una funzione chiamata come listener sull'evento onkeydown:
codice:
function onDocKeyDown( event ) {
if ( event.target.contentEditable != 'inherit' || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
var triggered = false;
switch( event.keyCode ) {
// se premi freccia su
case 33: navigatePrev(); triggered = true; break;
// se premi freccia giù
case 34: navigateNext(); triggered = true; break;
// sinistra
case 37: navigateLeft(); triggered = true; break;
// destra
case 39: navigateRight(); triggered = true; break;
}
if( triggered ) {
event.preventDefault();
}
else if ( event.keyCode === 27 && supports3DTransforms ) { //premendo Esc
if( visionePanoramicaAttiva() ) {
deAttivaVisionePanoramica();
}
else {
attivaVisionePanoramica();
}
event.preventDefault();
}
}
dunque, con lo switch sono definiti una serie di casi in cui premendo le frecce della tastiera vengono attivate determinate funzioni e la variabile triggered assume valore true.
Poi dopo c'è una struttura if-elseif in cui compare per due volte event.preventDefault. L'uso di questo metodo qui non mi è chiaro. preventDefault() serve per cancellare un evento di default: se fosse un link e lo attivassi su un link fermerei il reindirizzamento ad una nuova pagina; se fosse un submit potrei bloccare la funzione di invio attraverso la tastiera. Ma qui? perchè è necessario? Qual è l'evento di default che si vuole evitare?