2011-09-03 14 views
25

Tengo una vista de lista y lo que intento hacer es agregar un evento deslizante en los enlaces. Por ejemplo, si un usuario desliza el primer enlace, va a esa página. ¿Es esto posible con elementos de vista de lista? He intentado con div, href, a, li, ul pero todavía sin alerta. Funciona con el cuerpo. GraciasAdición del 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 Voy a intentar crear una galería de fotos con gestos deslizar – Tsar

Respuesta

27

Ejemplo vivo:

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> 

relacionadas:

+0

@bollo ¿Alguna vez descubrió cómo enviar esto a una nueva URL en lugar de a la DIV? – SnowboardBruin

1

funciona si enlazarlo directamente en el control, así:

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

¿Ha intentado utilizar la unión usando live()?

ACTUALIZACIÓN: .live() será obsoleto y el uso correcto es .on()

que asigna el controlador al evento para todos los elementos que coinciden con los actuales así como aquellos que podrían coincidir más adelante.

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

¿Ha considred utilizando esta biblioteca para gestures?

0

Si desea que la página se deslice en la dirección natural que los golpes de usuario, y luego hacerlo de esta manera:

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

si desea que la transición debe especificar que desea transición también como

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