2010-03-04 1 views
7

Еще одна проблема, с которой я столкнулся w/jqTouch ... Я пытаюсь определить, какой элемент был нажат, чтобы вызвать анимацию, чтобы я мог передавать параметры из щелкнутого элемента в следующий стр.JqTouch - Обнаружение триггера для анимации

Мой HTML является:

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

При нажатии на любой из пунктов списка в #places, я могу скользить к #singleplace просто отлично, но я пытаюсь определить, какой элемент был щелкнут так, чтобы я мог передавать параметры в div #singleplace. Мой браузер:

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

Я попробовал несколько альтернатив $ (эль) .live ('событие', п()) подход, включающий:

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

Ни одна из которых, кажется, работают , Есть ли лучший способ справиться с этим? я заметил на странице вопросов jqTouch, есть это: http://code.google.com/p/jqtouch/issues/detail?id=91 , который может быть частью проблемы ...

ответ

2

Если вы просто пытаетесь передать информацию, из которой элемент списка была нажата, вы можете прикрепить к onClick="function(event)" элементы ...

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

затем в Js ...

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

где x.id=='1' x.title==first & x.text=='Place 1'

надеюсь, что это поможет.

2

Я нашел решение:

  • Используйте tap(function()...) вместо live('click',function()...)
  • Использование jQT.goTo('#singleplace', 'slide');
  • использование return false;

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

Это работает для меня, даже в Firefox и Safari, не только в мобильных сафари.

Некоторая дополнительная информация:
Там, кажется, проблема с живым событием в JQTouch: http://code.google.com/p/jqtouch/issues/detail?id=165

Позвольте мне знать, если это работает для вас.