<p><a href="index.html" data-role="button" data-icon="arrow-r" data-iconpos="right" data-theme="a" onclick="doSomething(); return false">VERIFY</a></p>
J'utilise le code ci-dessus qui est un bouton jQM avec le jeu onClick (). OnClick est appelé et doSomething () est exécuté, mais jQM affiche ensuite le message "Erreur lors du chargement de la page".
Comment puis-je supprimer l'erreur? Dans ce cas, je veux le bouton jQM mais je ne veux pas qu'il change de page.
Merci
Puisque vous utilisez jQuery, je vous recommanderais également d’utiliser jQuery pour connecter vos événements. Cela dit, l'utilisation de e.preventDefault();
et e.stopImmediatePropagation();
devrait empêcher jQuery mobile d'effectuer l'action par défaut sur le <a/>
.
$("#verify").click(function (e) {
e.stopImmediatePropagation();
e.preventDefault();
//Do important stuff....
});
Mettre à jour
La meilleure façon d'utiliser votre balisage existant serait simplement d'ajouter rel="external"
à votre <a/>
et votre onclick
devrait se comporter correctement.
<p>
<a href="index.html" data-role="button" data-icon="arrow-r" data-iconpos="right" data-theme="a" onclick="doSomething(); return false" rel="external">VERIFY</a>
</p>
Cela fonctionnera car jQuery Mobile traitera le lien comme une balise <a/>
normale et renverra false arrêtera simplement l'action par défaut.
Je pense que votre problème est que vous avez plusieurs actions sur votre bouton et que vous utilisez une balise d'ancrage. Lorsque vous cliquez sur le bouton, vous appelez la page pour passer à index.html et à un événement onClick.
<a
href="index.html" <-- go to index.html
data-role="button"
data-icon="arrow-r"
data-iconpos="right"
data-theme="a"
onclick="doSomething(); return false"> <-- Click event
VERIFY
</a>
Peut-être essayer (peut-être besoin de supprimer/ajouter d'autres attributs)
<input
type="button"
name="verify"
id="verify"
data-icon="arrow-r"
data-iconpos="right"
data-theme="a"
value="VERIFY" />
et maintenant ajouter un événement de clic
$('#verify').click(function() {
alert('Button has been clicked');
});
Exemple en direct: http://jsfiddle.net/vRr82/2/
Je pense que vous devriez ajouter data-ajax="false"
dans la balise d'ancrage ...__ car, dans jQuery mobile, la transition de page est effectuée par AJAX, et pour la transition de pageit doit être faux ..