JavaScript onTouch ne fonctionne pas
Quelqu'un peut-il me dire pourquoi ce onTouch gestionnaire n'est pas à la cuisson.
var myDiv = document.getElementById('existingContent');
var myButton = '<a href="#" onClick="logOut();" ontouch="logOut()">log out</a>';
myDiv.appendChild(myButton);
function logOut() {
alert('hello');
}
Je suis à l'aide de l'iPad 1.
Je suis à l'aide de l'iPad 1. logout() pourrait être n'importe quoi, le ontouch événement ne se déclenche pas du tout. Je suis de regarder firebug pour garantir l'absence d'erreurs. Dans mon code, je suis juste d'appel d'alerte pour voir si l'événement est tiré avec succès à tous.
Le gestionnaire onclick fonctionne très bien dans firefox. Le seul problème que je vais avoir c'est d'avoir la ontouch à feu dans l'iPad.
T. J. - tu as raison. Ce n'est pas mon vrai monde code. J'ai dépouillé les peluches de descendre. Mon code est des espaces de noms dans un auto-exécution de la fonction anonyme et il y a beaucoup plus de texte dans la chaîne. Mais, cela n'explique pas pourquoi mon onclick incendies dans un navigateur de bureau sur pas sur mon iPad.
Ses un miracle que ce code fonctionne réellement. Depuis quand
Fortement recommandé de créer une réelle, complète, stripped-down exemple. Le ci-dessus est essentiellement un pseudo-code. Montrer quelque chose qui, lorsqu'il est collé dans un environnement réel comme jsbin.com serait effectivement démontrer le problème.
Le gestionnaire onclick fonctionne très bien dans firefox. Le seul problème que je vais avoir c'est d'avoir la ontouch à feu dans l'iPad.
T. J. - tu as raison. Ce n'est pas mon vrai monde code. J'ai dépouillé les peluches de descendre. Mon code est des espaces de noms dans un auto-exécution de la fonction anonyme et il y a beaucoup plus de texte dans la chaîne. Mais, cela n'explique pas pourquoi mon onclick incendies dans un navigateur de bureau sur pas sur mon iPad.
Ses un miracle que ce code fonctionne réellement. Depuis quand
Node.appendChild
prendre une chaîne de caractères?Fortement recommandé de créer une réelle, complète, stripped-down exemple. Le ci-dessus est essentiellement un pseudo-code. Montrer quelque chose qui, lorsqu'il est collé dans un environnement réel comme jsbin.com serait effectivement démontrer le problème.
OriginalL'auteur ShadeTreeDeveloper | 2012-06-08
Vous devez vous connecter pour publier un commentaire.
Ma recommandation serait la même que celle qui est proposée ici sur MDN:
Mon hésitation avec le ontouch attribut est de type cross-device support. Pour cela, vous pouvez envisager la détection de fonctionnalité.
Modernizr est un moyen populaire pour déterminer si le toucher est activée au moment de l'exécution.
Si les événements ci-dessus sont activés, les classes de contact ou sans contact sera ajouté à l'élément html et utilisé pour déterminer si le code ci-dessus devrait fonctionner.
EDIT:
Dans les jours suivants, j'ai couru à travers cette document décrivant les Événements Tactiles. Comme avec beaucoup de la technologie, il ya encore plus à elle...
Je vous remercie monsieur. Avec la technologie de croître à un rythme si rapide, de plus en plus, nous-sommes-tous-les noobs. Tout le meilleur!
après de nombreux mois de cogner ma tête contre le mur en essayant d'obtenir des écouteurs d'événement pour le travail de la croix-navigateur, j'ai découvert que l'affectation de avec el.onclick = myFunction(); est vraiment la seule solution fiable. Il y a des inconvénients pour ne pas utiliser le .méthode addEventListener (), mais jusqu'à ce que tous les navigateurs sont sur la même page, je suis prêt à contourner les limitations de .onclick =
Voir el. me fait penser à Backbone.js. D'autres cadres de gérer des événements bien trop... jQuery, Sencha, etc. Il est bon de ne pas avoir à réinventer la roue, parfois. Aussi git hub est important. Meilleur! Nash
OriginalL'auteur Jack Stone
Il n'y a pas de
"touch"
événement. Vous pouvez trouvertouchstart
,touchend
,touchmove
ettouchcancel
événements, comme cela est montré dans ce lien. Je pense que vous devez utilisertouchstart
dans votre code HTML:Aussi voir ce page web.
OriginalL'auteur Jencibácsi