2014-10-16 11 views
8

Sto riscontrando un problema con Firefox 32 quando associo l'azione all'evento click dell'elemento span all'interno di un elemento del pulsante. Altri browser sembra funzionare bene.evento di clic mancante per <span> all'interno dell'elemento <button> su firefox

Qui il code illustrating the issue on jsFiddle.

<span onClick="alert('test');">**Working**</span><br> 
<button>inside a button <span onClick="alert('test');">**Not working**</span></button> 

Qualcuno sa perché e se si tratta di un bug o di una funzionalità?

+0

È divertente perché funziona perfettamente su Chrome. Ma mi è stato detto anche che non funziona su IE, quindi per lo più non funziona. – chowey

risposta

12

Per quanto ho conosciuto cliccando gli elementi per bambini non funzionerà perché è annidato all'interno di un pulsante. Un pulsante non è un contenitore per elementi figlio - solo per il testo.

Se si prova come di seguito si dice sempre che si è fatto clic sul pulsante.

 <button type="button" onclick="alert('You clicked the button!');"> 
     inside a button <span onClick="alert('clicked span');">**Not working**</span> 
     </button> 

Quindi, il mio suggerimento è quello di utilizzare un altro arco o un div

 <div class="button_replace"> 
     inside a div <span onClick="alert('clicked span');">**working**</span> 
     </div> 

Speranza che aiuta ...

Nota: Il codice funzionerà in cromo, ma non in Firefox e il mio la risposta è una soluzione alternativa per la creazione di lavoro in firefox

+0

Funziona, grazie! Devo aggiustare una lib esterna per farlo e preferirei evitarlo ma va bene. – Jrmi

+0

quale libreria esterna è stata utilizzata? lo stesso problema qui e sono costretto a utilizzare il pulsante all'interno del pulsante, in realtà md-button –

+0

Risolve il mio problema. Sostituire il pulsante con div risolve il problema. Grazie! – shaosh

-2

Aggiungere un puntatore-evento al pulsante nel css come:

button span { 
 
    pointer-events: none; 
 
}

clic sull'elemento tasto saranno ignorate

+0

Ho provato [qui] (http://jsfiddle.net/tqf0z7x5/1/) ma sembra non funzionare. – Jrmi

8

È necessario aggiungere la proprietà pointer-events allo span elemento.

button span { 
    pointer-events: none; 
} 
+0

Non funziona su FF 56! – PaulCo

Problemi correlati