2011-09-03 16 views
25

Ho una lista e quello che sto cercando di fare è aggiungere un evento di scorrimento sui collegamenti. Ad esempio, se un utente fa scorrere il primo link, passa a quella pagina. È possibile con elementi listview. Ho provato div, href, a, li, ul ma ancora nessun avviso. Funziona con il corpo. GrazieAggiunta dell'evento jquery mobile swipe

<div> 
    <ul data-role="listview" data-inset="true"> 
    <li class="rqstpage"><a href="./requests.php">Requests</a></li> 
    <li><a href="./speakers.php" data-transition="pop">Control Panel</a></li> 
    <li><a href="./schedule.html">Schedule</a></li> 
    <li><a href="./information.html">Information</a></li> 
    </ul> 
</div> 


<script> 
$("div ul li.rqstpage").bind('swipe',function(event, ui){ 
    $.mobile.changePage("requests.php", "slide"); 
}); 
</script> 
+2

+1 Ho intenzione di provare a creare una galleria fotografica con gesti di scorrimento – Tsar

risposta

27

diretta Esempio:

JS:

$("#listitem").swiperight(function() { 
    $.mobile.changePage("#page1"); 
}); 

HTML:

<div data-role="page" id="home"> 
    <div data-role="content"> 
     <p> 
      <ul data-role="listview" data-inset="true" data-theme="c"> 
       <li id="listitem">Swipe Right to view Page 1</li> 
      </ul> 
     </p> 
    </div> 
</div> 

<div data-role="page" id="page1"> 
    <div data-role="content"> 

     <ul data-role="listview" data-inset="true" data-theme="c"> 
      <li data-role="list-divider">Navigation</li> 
      <li><a href="#home">Back to the Home Page</a></li> 
     </ul> 

     <p> 
      Yeah!<br />You Swiped Right to view Page 1 
     </p> 
    </div> 
</div> 

correlati:

+0

@bollo hai mai capito come inviare questo a un nuovo URL invece del DIV? – SnowboardBruin

1

funziona se si legano direttamente sul controllo, in questo modo:

pageCreate() { 
    $("li.rqstpage").swipe() { 
    $.mobile.changePage("requests.php", "slide"); 
    } 
} 
4

Hai provato a usare vincolante utilizzando live()?

UPDATE: .live() sarà deprecato e l'uso corretto è .on()

Si attribuisce il gestore per l'evento per tutti gli elementi di corrispondenza attuali così come quelli che potrebbero corrispondere in seguito.

pageCreate() { 
    $(parent).on('swipe', 'li.rqstpage', function() { 
    $.mobile.changePage("requests.php", "slide"); 
    } 
} 

Avete considred utilizzare questa libreria per gestures?

0

Se si desidera che la pagina di scivolare nella direzione naturale che i colpi di utente, allora fatelo in questo modo:

// For a left swipe: page slides from right to left 
$('#listitem').on('swipeleft', function() { 
    $.mobile.changePage('#page-to-left', { transition: slide}); 
}); 

// For a right swipe: page slides from left to right (add "reverse: true") 
$('#listitem').on('swiperight', function() { 
    $.mobile.changePage('#page-to-right', { transition: slide, reverse: true}); 
}); 
0

se si desidera che la transizione è necessario specificare che vuoi transizione anche come

$.mobile.changePage('#page1', { transition: 'flip' });