Stiamo lavorando su uno strumento JavaScript con codice precedente, , quindi non possiamo riscrivere l'intero strumento.Come gestisco un clic in qualsiasi punto della pagina, anche quando un determinato elemento interrompe la propagazione?
Ora, un menu è stato aggiunto posizione fissa in basso e il client sarebbe molto piaciuto avere un pulsante di commutazione per aprire e chiudere il menu, eccetto la chiusura deve avvenire automaticamente quando un utente inizia a fare le cose fuori lato del menu, ad esempio, quando un utente torna nella pagina e seleziona qualcosa o fa clic su un campo modulo.
Questo potrebbe tecnicamente lavorare con un evento click
sul body
, innescando su ogni clic, tuttavia ci sono numerosi elementi del vecchio codice, in cui un evento click è stato gestito su un link interno, e return false
è stato aggiunto al click funzione, in modo che il sito non continui al tag href
del collegamento.
Così chiaramente, una funzione generale come questa funziona, ma non quando si fa clic su un collegamento interno dove il ritorno false arresta la propagazione.
$('body').click(function(){
console.log('clicked');
});
C'è un modo per forzare l'evento corpo click in ogni caso, o c'è un altro modo posso lasciare il dissappear menù, utilizzando alcune evento click globale o qualcosa di simile?
Senza dover riscrivere tutti gli altri clic nell'applicazione creati anni fa. Questo sarebbe un compito da mostro, soprattutto perché non ho idea di come li riscriverei, senza il falso ritorno, ma ancora non li lascerò andare al loro href
.
Per chiunque si chieda se possono usare questo, ecco la pagina di caniuse: http://caniuse.com/#feat=addeventlistener la risposta breve è sì, a patto che non ti interessi su IE8 –