2012-12-04 14 views
5

Kod:html onclick strzelając dwa razy w Androidzie

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> 

staram się uchwycić, gdy pole tekstowe odpowiedź kliknięciu w HTML. Działa to doskonale w Firefoksie i Chrome (mam tylko jedno ostrzeżenie Hi), ale metoda onclick uruchamia się dwa razy, gdy próbuję uruchomić kod w widoku sieciowym w systemie Android (otrzymuję dwa powiadomienia Hi). Jednak, gdy później zadzwonię do tej samej funkcji, zadziała ona prawidłowo, wystrzeliwując tylko jeden alert 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> 

Zgaduję, że ma to coś wspólnego z faktem, że dzwonię z funkcji z wnętrza formie i to w jakiś sposób wyzwalania zdarzenia dwa razy, ale nie mam pojęcia jak to naprawić. Jakaś pomoc?

Odpowiedz

0

Możesz spróbować użyć funkcji one() w następujący sposób.

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

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

Wygląda na to, że nic nie robi. – user1876307

+0

Czy wywołujesz funkcję 'one()' wewnątrz '$ (document) .ready (function() {}'? – chridam

+0

Nie byłem tutaj, początkujący.Dzięki! Naprawia problem z wystrzeliwaniem dwa razy, ale teraz tylko alert pojawia się po raz pierwszy klikam pole (jeśli robię inne rzeczy na stronie, a następnie klikam pole tekstowe ponownie nic się nie dzieje). – user1876307