jQuery - déplaçable images sur iPad / iPhone - comment intégrer l'événement.preventDefault();?
J'utilise jQuery, jQuery UI et jQuery mobile pour construire une application web pour iPhone /iPad.
Maintenant, je créer des images et ils devraient être déplaçable, j'ai donc fait ceci:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Drag - Test</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.css" />
<script src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
</head>
<body>
<div>
<div style="width:500px;height:500px;border:1px solid red;">
<img src="http://upload.wikimedia.org/wikipedia/en/thumb/9/9e/JQuery_logo.svg/200px-JQuery_logo.svg.png" class="draggable" alt="jQuery logo" />
<img src="http://upload.wikimedia.org/wikipedia/en/a/ab/Apple-logo.png" class="draggable" alt="Apple Inc. logo" />
</div>
</div>
</body>
<script type="text/javascript">
$(document).ready(function() {
$(".draggable").draggable();
});
</script>
</html>
Ici, vous pouvez voir l'exemple vivant: http://jsbin.com/igena4/
Le problème, c'est que la page entière voulez défiler. J'ai cherché dans les Apple HTML5 exemples et trouvé ceci pour éviter le défilement de la page, de sorte que l'image est déplaçable:
...
onDragStart: function(event) {
//stop page from panning on iPhone/iPad - we're moving a note, not the page
event.preventDefault();
...
}
Mais le problème est pour moi, comment puis-je inclure dans mes jQuery? Où puis-je obtenir event
?
Meilleures Salutations.
Vous devez vous connecter pour publier un commentaire.
Essayer cette bibliothèque
https://github.com/furf/jquery-ui-touch-punch
J'ai trouvé une solution qui fonctionne sur les navigateurs de Bureau et iOS Safari sur iPad et iPhone:
http://code.google.com/p/jquery-ui-for-ipad-and-iphone/
Vous n'avez qu'à télécharger et intégrer le fichier JavaScript, c'est tout.
Je suppose que ce serait ressembler à ceci
Je ne suis pas sûr si elle devrait être
document
ou tout simplement'body'
MODIFIER
Je ne sais pas où vous avez pris que l'exemple de code à partir, mais il semble toujours à bloquer tout en faisant glisser. Essayez si cela permet - il de prévenir bouillonne, donc si le défilement fonctionne avec le nœud de document - l'événement ne devrait pas y arriver. [Je n'ai pas encore essayer sur les pommes]
return false
. Je pense que c'était trop.return false
il ne fonctionne pas. Exactement le même comportement: jsbin.com/igena4/5 - jsbin.com/igena4/6 ne Peut pas glisser avec la souris et de ne pas glisser avec le doigt.jQuery 1.9 va le faire pour vous.
Voici un lien pour la RC: http://blog.jqueryui.com/2012/08/jquery-ui-1-9-rc/
Vous devez simplement aller regarder les Doc de jquery http://jqueryui.com/demos/draggable/#events
Vous rappel pour le début de l'événement doivent être en jeu lorsque vous appelez la déplaçable méthode, comme avec tous les autres jQuery, il y a toujours un param où vous pouvez passer d'un objet qui contient les rappels. Essayez d'appeler preventDefaut en début de rappel.
start: function(event) { event.preventDefault(); }
, mais alors rien de fonctionne - pas de souris, pas de doigt glisser.preventDefault
s ici et là, d'essayer d'arrêter la bouillonnante sur les différents événements...