2010-03-04 9 views
7

फिर भी एक और समस्या है जिसमें मुझे w/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 के लिए खत्म हो स्लाइड करने में सक्षम हूँ, लेकिन मैं जो तत्व का पता लगाने की कोशिश कर रहा हूँ क्लिक किया गया था ताकि मैं पैरामीटर को #singleplace div में पास कर सकूं। मेरे जावास्क्रिप्ट है:

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

मैं $ (एल) .live करने के लिए कई विकल्प की कोशिश की है ('घटना', fn()) दृष्टिकोण सहित:

कोई जिनमें से
$('#places a').live('click',fn()... 
$('#places a').live('mouseup',fn()... 
$('#places a').live('tap',fn()... 
$('#places a').tap(fn()... 

काम करने के लिए लग रहे हैं । क्या कोई बेहतर तरीका है जिसे मैं संभाला जा सकता हूं? http://code.google.com/p/jqtouch/issues/detail?id=91 जो समस्या का हिस्सा हो सकता ...

उत्तर

2

तुम सिर्फ से जो सूची आइटम पर क्लिक किया गया की जानकारी पारित करने के लिए कोशिश कर रहे हैं, तो आप के लिए एक onClick="function(event)" देते हैं सकता है: मैं jqTouch के मुद्दों पृष्ठ पर देखा है, वहाँ यह है आइटम ...

<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; 
    }); 

यह मेरे लिए काम करता है, फ़ायरफ़ॉक्स और सफारी में भी, न केवल मोबाइल सफारी में।

कुछ अतिरिक्त जानकारी: http://code.google.com/p/jqtouch/issues/detail?id=165

मुझे पता है कि अगर यह भी आप के लिए काम करता है:
वहाँ JQTouch में लाइव इवेंट के साथ एक समस्या हो रहा है।

संबंधित मुद्दे