2010-03-04 24 views
7

Otro problema más que tengo w/jqTouch ... Estoy tratando de detectar en qué elemento se hizo clic para activar una animación para poder pasar los parámetros del elemento cliqueado a la siguiente página.JqTouch - Detecta el disparador para la animación

Mi HTML es:

<div id="places"> 
<div class="toolbar"> 
     <h1>Places</h1> 
    <a class="back" href="#">Back</a> 
    </div> 
<ul> 
    <li id="1"><a href="#singleplace">Place 1</a></li> 
    <li id="2"><a href="#singleplace">Place 2</a></li> 
    <li id="3"><a href="#singleplace">Place 3</a></li> 
</ul> 
</div> 

<div id="singleplace"> 
<div class="toolbar"> 
     <h1></h1> 
    <a class="back" href="#">Back</a> 
    </div> 
</div> 

Cuando hago clic en cualquiera de los elementos de la lista en #lugares, soy capaz de deslizarse hacia #singleplace muy bien, pero estoy tratando de detectar qué elemento se hizo clic para que pueda pasar parámetros en el div #singleplace. Mi Javascript es:

var placeID; 
$('#places a').live('mouseup',function(){ 
$('#singleplace h1').html($(this).text()) 
placeID = $(this).parent().attr('id'); 
}) 

He intentado varias alternativas al $ (el) .live ('evento', fn()) enfoque que incluye:

$('#places a').live('click',fn()... 
$('#places a').live('mouseup',fn()... 
$('#places a').live('tap',fn()... 
$('#places a').tap(fn()... 

Ninguno de los cuales parecen funcionar . ¿Hay una mejor manera de que pueda manejar esto? me di cuenta en la página de temas jQTouch, no es este: http://code.google.com/p/jqtouch/issues/detail?id=91 que puede ser parte del problema ...

Respuesta

2

Si sólo está tratando de pasar información de la lista el elemento que se ha hecho clic, podría adjuntar una onClick="function(event)" a los artículos ...

<li><a id="1" title="first" onClick="send(event)" href="#singleplace">Place 1</a></li> 

continuación, en el js ...

function send(event) { 
    x=event.target; 
} 

donde x.id=='1' x.title==first & x.text=='Place 1'

espero que ayude un poco.

2

he encontrado una solución:

  • Uso tap(function()...) en lugar de live('click',function()...)
  • Uso jQT.goTo('#singleplace', 'slide');
  • uso return false;

    var placeID; 
    $('#places a').tap(function(){ 
    $('#singleplace h1').html($(this).text()); 
    placeID = $(this).parent().attr('id'); 
    jQT.goTo('#singleplace', 'slide');  
    return false; 
    }); 

Esto funciona para mí, incluso en Firefox y Safari, no solo en safari móvil

Alguna información adicional:
Parece que hay un problema con el evento en vivo en jQTouch: http://code.google.com/p/jqtouch/issues/detail?id=165

Vamos a saber si esto también funciona para usted.

Cuestiones relacionadas