2010-09-12 6 views
3

J'ai une page html avec quelques liens. Lorsque vous cliquez sur un lien, un certain code jQuery cache le conteneur div et affiche un autre div. Les liens d'origine, dans la première div, ne sont plus visibles. Du point de vue du navigateur (webkit sur Android), tout fonctionne parfaitement. Mais si je touche l'écran, les liens cachés réagissent comme s'ils étaient visibles. Si je touche l'écran, où seraient les liens cachés, je vois un rectangle orange. Le navigateur ne fait rien, il montre seulement le lien comme cliqué.L'écran tactile réagit sur les liens cachés

Comment est-il possible de synchroniser l'écran tactile et les fonctions masquer/afficher jquery?

Mon test est sur webkit, android, et Sony Ericsson xperia téléphone. J'ai réalisé une page de test avec le phénomène. Voir here ou avec ce code qr:

alt text

Lorsque vous appuyez sur le lien, vous allez à un div sans aucun lien, mais, sur mon téléphone, si je touche la première ligne, je vois un effet sur le lien non visible.

Voici le code html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
    <head> 
    <title>Test for Stackoverflow</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <script type="text/javascript" src="jquery-1.4.2.min.js"></script> 
    <script type="text/javascript"> 
$(document).ready(function() 
{ 
    $("#with-link a").click(function() 
    { 
    $("#with-link").hide("slow"); 
    $("#after-touch").show("slow"); 
    return false; 
    }); 
}); 

    </script> 
    </head> 
    <body> 
    <div id="with-link"> 
     Oh... <a href="http://stackoverflow.com">It's a link !</a> 
    </div> 
    <div id="after-touch"style="display:none"> 
     But it's not go to stackoverflow :-)<br> 
     To Touch Or Not To Touch that is the question. 
    </div> 
    </body> 
</html> 
+1

Par 'visibles', voulez-vous dire' visibility: hidden'-ed ou 'display: none'-ed? – Eric

+0

J'utilise la fonction hide de jquery: $ (selector) .hide ("slow"). – Istao

+1

@Istao est-ce alors que pendant les 0.6 secondes le lien est caché, ou après qu'il a disparu? Pouvez-vous montrer du HTML? –

Répondre

0

Je n'ai pas un smartphone pour tester, mais mon point de vue à ce sujet est que le lien n'a pas complètement disparu: Il est juste caché.

Combien de liens avez-vous? si elle est juste un, vous pouvez simplement le retirer de l'existence (quand vous avez besoin de le cacher)

$('#mylink').remove(); 

puis créer à nouveau

$('#linkcontainer').append('<a href="#">damn link</a>'); 

Si vous avez plus de liens, ce n'est pas une méthode pratique . Vous pouvez ensuite jouer avec CSS, positionner le lien sur absolu, et l'envoyer à -4999px gauche. Ce sera votre fonction de masquage;)

+0

C'est du boulot! Merci. – Istao

Questions connexes