2013-01-04 12 views
8

Sto usando fancybox su una pagina, ma lo sto usando come più di una caratteristica di design di una modale jQuery. Sto cercando di impedire all'utente di essere in grado di chiuderlo (in quanto "interromperà" il design della pagina). Sono riuscito a impedire all'utente di fare clic su fancybox, ma ho difficoltà a fermarlo quando viene premuto il tasto Esc. Ho provato 'closeOnEscape': false ma questo non sembra funzionare. Di seguito è il mio codice. Qualche suggerimento su cosa sto facendo male o cosa devo fare?Arresta chiusura fancybox quando l'utente preme Esc

$(document).ready(function() { 
    $.fancybox({ 
     'width': '340px', 
     'height': '100%', 
     'autoScale': true, 
     'transitionIn': 'none', 
     'transitionOut': 'none', 
     'type': 'iframe', 
     'href': 'form.php', 
     'hideOnContentClick': false, 
     'closeBtn' : false, 
     'helpers' : { 
      'overlay' : { 
       'closeClick': false, 
      } 
     } 
    }); 
}); 
+1

quale versione di fancybox stai usando? – lnrbob

+0

Questo non ti aiuterà ma se lo stai utilizzando come funzionalità di progettazione è probabilmente più semplice creare qualcosa di simile (visivamente) – Damien

+0

http://stackoverflow.com/questions/3000884/why-is-it-when-i -set-closeonescape-to-false-and-then-closeonescape-to-true-j – Arpit

risposta

14

Selezionare l'opzione keys da fancyBox docs:

chiavi
Definire i tasti della tastiera per la navigazione galleria, chiusura e con slideshow
oggetto; Valore di default:

{ 
    next : { 
     13 : 'left', // enter 
     34 : 'up', // page down 
     39 : 'left', // right arrow 
     40 : 'up' // down arrow 
    }, 
    prev : { 
     8 : 'right', // backspace 
     33 : 'down', // page up 
     37 : 'right', // left arrow 
     38 : 'down' // up arrow 
    }, 
    close : [27], // escape key 
    play : [32], // space - start/stop slideshow 
    toggle : [70] // letter "f" - toggle fullscreen 
} 

Proprio mappa il valore close a null.


Se si utilizza fancyBox2, Aggiungi questa proprietà al codice:

$.fancybox({ 
    // all your other options here 
    ..., 
    keys : { 
    close : null 
    } 
} 
+0

sei in grado di incorporare il codice che mi serve nel mio codice esistente? Non ho alcuna esperienza con javascript o fancyBox –

+0

Vedere la mia modifica ora. – moonwave99

+1

Stranamente, questa risposta non ha funzionato per me. Ho trovato che 'modal: true,' sembrava funzionare –

2

@ moonwave99 ha la risposta corretta per fancybox2. Se si utilizza v1.3 + quindi è necessario utilizzare:

enableEscapeButton: false 

Rif: http://fancybox.net/api

0

Come altri hanno già detto nei commenti, modal: true funziona perfettamente ...

$.fancybox({ 
    modal: true 
}); 

Da the docs...

mod - Se impostato su true, disabiliterà la navigazione e la chiusura.

Problemi correlati