2012-12-04 15 views
5

Codice:Html onclick sparando due volte in Android

function hello(){alert("Hi");}; 

<center> 
<table border="0" height="100%"> 
<tbody> 
      <tr> 
       <td align="center" width="100%"> 
       <img src="cover.png" 
        width="300" height="300" id="image"></img></td> 
      </tr> 
      <tr> 
       <td height="100%">&nbsp;</td> 
      </tr> 
      <tr> 
       <td align="center"> 
      <form onsubmit="go();return false"> 
         <input class="answer" id="answer" name="answer" 
          onclick="hello();"/> 
        </form> 
       </td> 
      </tr> 
      <tr> 

      </tr> 
     </tbody> 
</table> 
</center> 

ho cercato di catturare quando la casella di testo risposta viene cliccato in HTML. Funziona perfettamente in Firefox e Chrome (ricevo solo un avviso Hi), ma il metodo onclick si attiva due volte quando provo a eseguire il codice in una visualizzazione Web in Android (ricevo due avvisi Hi). Tuttavia, quando chiamo la stessa funzione in un secondo momento, funziona correttamente, attivando solo un avviso Hi.

<div style="bottom: 0; right: 0; position:absolute; margin-right:5%"> 
    <a><img alt="" src="start.png" id="submit" onclick="go();hello();"></a> 
    </div> 

Sto indovinando che ha qualcosa a che fare con il fatto che sto chiamando la funzione dall'interno del modulo ed è in qualche modo generare l'evento due volte, ma non ho idea di come risolvere il problema. Qualsiasi aiuto?

risposta

0

Si potrebbe provare a utilizzare one() come segue.

$('#answer').one('click', function() { 
    alert("Hi"); 
}); 

<form onsubmit="go();return false"> 
    <input class="answer" id="answer" name="answer"/> 
</form> 
+0

Non sembra che faccia nulla. – user1876307

+0

Stai chiamando la funzione 'one()' dentro '$ (document) .ready (function() {}'? – chridam

+0

Non ero, newbie qui. Grazie! Risolve il problema del licenziamento due volte, ma ora solo l'avviso mostra la prima volta che clicco sulla casella (se faccio altre cose intorno alla pagina e poi faccio clic di nuovo sulla casella di testo non accade nulla). – user1876307