Ho fatto una pagina html con una immagine con dei div clickabili che fanno un toggle di rosso-verde (oltre ad altre funzioni) ad ogni click .
es:
parte della funzione CambiaStato:codice:<MAP NAME="Casa"> <AREA class="aa" SHAPE="rect" name= "francesco" alt="francesco" coords=" 148, 36, 292, 321" > <div id="f" onclick="CambiaStato(this);"><p id="f_man"><p id="f_temp"></div> <AREA class="aa" SHAPE="rect" name= "francescoTermo" alt="francescoTermo" coords=" 33, 36, 163, 321" > <div id="F9" onclick="CambiaStato(this);"><p id="F9_man"><p id="F9_temp"></div> </MAP> [img]PianoPrimo_Base.gif[/img]
Tutto funziona bene con i browser normali.codice:function CambiaStato(obj) { var cambio = ''; if (obj.style.backgroundColor == 'rgba(255, 0, 0, 0.4)'){ obj.style.backgroundColor = 'rgba(0, 255, 0, 0.4)' obj.style.outline = "10px dotted rgba(0, 255, 0, 0.4)" ...... } else { obj.style.backgroundColor = 'rgba(255, 0, 0,0.4)' ; obj.style.outline = "10px dotted rgba(255, 0, 0,0.4)" .... } ...... }
Ho provato su Android con quello di default, con Dolphin HD e Skyfire. E qui iniziano i dolori...
Se lascio il tag Area prima del div, mi mostra che ha riconosciuto l'area del div, ma non effettua la chiamata alla funzione.
Bisogna spostare il div prima dell'Area:
Poi, l'If che controlla il colore del background, non lo vede correttamente:codice:<div id="f" onclick="CambiaStato(this);"><p id="f_man"><p id="f_temp"></div> <AREA class="aa" SHAPE="rect" name= "francesco" alt="francesco" coords=" 148, 36, 292, 321" >
obj.style.backgroundColor dovrebbe essere 'rgba(255, 0, 0, 0.4)', invece mi dà:
obj.style.backgroundColor == 'rgba(255, 0, 0, 0.398438)'
Ma soprattutto, se c'è l'outline nel div
(obj.style.outline = "10px dotted rgba(255, 0, 0,0.4)") ,
ritorna a non eseguire la funzione CambiaStato!
Mentre per esempio su Windows Mobile, Opera funziona bene, però non tiene conto dell'alpha del rgba.
Come faccio a fare sempre eseguire la funzione dell'onclick?

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando