jQuery – ziehbare Bilder auf iPad / iPhone – wie integriere ich event.preventDefault();?

Lesezeit: 7 Minuten

Ich verwende jQuery, jQuery UI und jQuery mobile, um eine Webanwendung für iPhone / iPad zu erstellen. Jetzt erstelle ich Bilder und sie sollten ziehbar sein, also habe ich Folgendes getan:

<!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>

Hier sehen Sie das Live-Beispiel: http://jsbin.com/igena4/

Das Problem ist, dass die ganze Seite scrollen möchte. Ich habe in den HTML5-Beispielen von Apple gesucht und Folgendes gefunden, um das Scrollen der Seite zu verhindern, sodass das Bild gezogen werden kann:

...
onDragStart: function(event) {
    // stop page from panning on iPhone/iPad - we're moving a note, not the page
    event.preventDefault();
    ...
}

Aber das Problem ist für mich, wie kann ich das in meine jQuery aufnehmen? Wo bekomme ich event?

Mit freundlichen Grüßen.

jQuery ziehbare Bilder auf iPad iPhone wie
JE42

Probieren Sie diese Bibliothek aus

https://github.com/furf/jquery-ui-touch-punch

Befolgen Sie einfach diese einfachen Schritte, um Berührungsereignisse in Ihrer jQuery-UI-App zu aktivieren:

  1. Binden Sie jQuery und jQuery UI auf Ihrer Seite ein.

    <script src="http://code.jquery.com/jquery.min.js"></script>
    <script src="http://code.jquery.com/ui/1.8.17/jquery-ui.min.js"></script>
    
  2. Fügen Sie Touch Punch nach der jQuery-Benutzeroberfläche und vor der ersten Verwendung hinzu.

    Bitte beachten Sie, dass Touch Punch nach jquery.ui.mouse.js eingefügt werden muss, wenn Sie die Komponenten von jQuery UI verwenden, da Touch Punch sein Verhalten ändert.

    <script src="https://stackoverflow.com/questions/4488601/jquery.ui.touch-punch.min.js"></script>
    
  3. Es gibt keine 3. Verwenden Sie einfach die jQuery-Benutzeroberfläche wie erwartet und sehen Sie zu, wie sie mit einem Fingerdruck funktioniert.

    <script>$('#widget').draggable();</script>
    

  • +1 für die Erwähnung, ich habe viel damit gearbeitet und funktioniert hervorragend mit jquery ui.

    – Anmol Saraf

    12. Juni 12 um 13:06 Uhr

  • Das ist so cool. Es funktioniert einfach! Gerade getestet auf Opera Mobile, Firefox/Fennec und dem Standardbrowser Nokia N9. Von diesen 3 ist nur Fennec etwas klobig (funktioniert aber immer noch). Siehe Beispiel hier: m.enux.pl/_tests/jui/demos/droppable/photo-manager.html

    – Nux

    19. September 12 um 17:42 Uhr

  • Stellen Sie sicher, dass Sie dies nach dem

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy