Nous développons une application Web qui se lance sur le bureau et sur les tablettes (iPad, Android ou une surface). Nous construisons maintenant notre propre clavier pour les entrées numériques. Lorsque vous définissez le focus sur un champ de saisie avec un clic de souris, le clavier du costum s'ouvre correctement. Mais lorsque vous définissez le focus sur l'entrée avec un clic touché (tablette), le clavier par défaut s'ouvre également. Notre idée est de détecter s'il y a eu un clic de souris ou un clic touché. S'il s'agit d'un clic touché, nous pouvons définir l'entrée readonly = "true" , de sorte que le clavier par défaut d'un tableau ne glisse pas.
Existe-t-il un moyen de détecter ou de vérifier le "type" de clic (touché ou souris)?.
Vous pouvez définir un événement pour les deux actions touchend
et click
, puis détecter celle qui est déclenchée à l'aide du type d'événement:
$('#element-id').on('click touchend',function(e){
if(e.type=='click')
console.log('Mouse Click');
else
console.log('Touch');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="element-id">Click here</button>
J'espère que cela t'aides.
@Zakaria Acharki
<script type="text/javascript">
$(document).ready(function(){
$(".cCostumeKeyboard").on("click touchstart",function(e){
if(e.type=="click") {
alert("Mouse");
alert(e.type);
}
else if(e.type=="touchend"){
alert("Touch");
alert(e.type);
e.preventDefault();
e.stopPropagation();
}
});
});
</script>
Essayez cet extrait sur un périphérique tactile. Il montre après le premier contact sur une entrée suivre: