J'essaie de faire fonctionner une fonctionnalité qui existe sur mon site mais qui fonctionne mal sur Safari pour iPhone.Toggling La fonction jQuery ne fonctionne pas sur Safari Mobile
Eh bien, j'ai un élément « li »:
..
<li><input id='showOrHide' type='button' value='show or hide'/></li>
<li><input type='text' value='ok'/></li>
..
Lorsque je clique sur le bouton « afficher ou cacher », l'entrée de texte doit apparaître ou disparaître.
Ensuite, j'ai une fonction jQuery qui lie le clic:
$("#showOrHide").click(function(){
if($(this).parent().next().is(':visible'))
$(this).parent().next().hide('slow');
else
$(this).parent().next().show('slow');
});
Le problème est que, si l'élément apparaît, Safari cache montre ensuite.
Je pense donc que Safari vérifie si l'élément est visible ou non. S'il est visible, il le cache, puis va dans la sélection "else". Là, il vérifie si l'élément est visible ou non. Il trouvera le non visible, puis le fera apparaître.
Alors quelqu'un stackoverflow me adivises d'utiliser la fonction de bascule et qui est ce que je faisais:
$("#showOrHide").click(function(){
$(this).parent().next().toggle('slow');
});
J'ai essayé votre fonction: Il fonctionne parfaitement sur les navigateurs de bureau (chrome, safari) mais sur Safari pour iPhone il a fait ce que j'ai décrit: montre et cache l'élément caché instantanément.
Existe-t-il une solution pour cela sans utiliser un framework javascript extrernal (mais jQuery)?
Merci, Cordialement