2
<div data-role="header" class="page-header"><h2>Header</h2></div> 
<div data-role="content"> 
    <form> 
     <fieldset data-role="controlgroup"> 
      <legend>Legend:</legend> 
      <input name="checkbox-1a" id="checkbox-1a" type="checkbox"/ > 
      <label for="checkbox-1a">Label</label> 

Et j'utiliser ce script:événement robinet jquery mobile

$(".class").on('tap', tapHandler); 
function tapHandler(event) { 
    alert(123); 
} 

Quand je mets cela en-tête $(".page-header").on('tap' fonctionne très bien, mais quand rien ne se passe $("input").on('tap')

Pourquoi? onclick sur input ne fonctionnent pas sur les appareils mobiles

+0

essayer 'vclick' au lieu de' tap'. '$ (document) .on ('vclick', '.selector', function() {code ici}};' – Omar

Répondre

3

Vous devez comprendre , vous n'enregistrez pas sur une entrée de case à cocher, vous enregistrez sur une représentation jQuery Mobile de cette case à cocher. L'original en put est caché.

Cela fonctionne:

$(document).on('tap', '.ui-checkbox', function(){ 
    // Do something  
}); 
+0

Je sais cela, j'ai essayé votre code, mais ne fonctionne toujours pas Quand je change '' .ui-checkbox'' fonctionne très bien, mais dans '

' tap event ne fonctionne pas pourquoi? –

+0

Quelle plate-forme utilisez-vous pour le test? – Gajotres

+2

Firefox sur MacOS, Chrome sur iOS Le problème était dans l'événement. Je suis passé de l'événement 'tap' à' change', et ça marche très bien. Merci! –

0

Je pense que le problème est que les événements jQuery Mobile ne peuvent pas être définies dans les balises, alors essayez de refeer par son id

utilisation $("#checkbox-1a").on au lieu

+0

J'ai essayé! et utilisé 'bind' au lieu de' on'. rien. Le problème était dans la forme, je le pense –

Questions connexes