2010-03-04 5 views
7

Encore un autre problème que j'ai avec w/jqTouch ... J'essaie de détecter quel élément a été cliqué pour déclencher une animation afin que je puisse passer des paramètres de l'élément cliqué à la suivante page.JqTouch - Détecter le déclencheur pour l'animation

Mon HTML est:

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

Lorsque je clique sur l'un des éléments de la liste dans #places, je suis en mesure de glisser vers #singleplace très bien, mais je suis en train de détecter quel élément a été cliqué pour que je puisse passer des paramètres dans le div #singleplace. Mon javascript est:

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

J'ai essayé plusieurs solutions de rechange à l'$ (el) approche .live ('événement', fn()) dont:

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

Aucun qui semble fonctionner . Y a-t-il une meilleure façon de gérer cela? J'ai remarqué sur la page des problèmes de jQTouch, il y a ceci: http://code.google.com/p/jqtouch/issues/detail?id=91 qui peut faire partie du problème ...

Répondre

2

Si vous êtes juste essayer de passer d'information à partir de laquelle l'élément de liste a été cliqué, vous pourriez joindre un onClick="function(event)" à les articles ...

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

puis dans les js ...

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

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

espérons que cela aide un peu.

2

J'ai trouvé une solution:

  • Utilisation tap(function()...) au lieu de live('click',function()...)
  • utilisation jQT.goTo('#singleplace', 'slide');
  • utilisation return false;

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

Cela fonctionne pour moi, même dans Firefox et Safari, pas seulement dans un safari mobile.

Quelques informations supplémentaires:
Il semble avoir un problème avec l'événement en direct dans jQTouch: http://code.google.com/p/jqtouch/issues/detail?id=165

Laissez-moi savoir si cela fonctionne aussi pour vous.