2015-01-19 6 views
7

मैं हैमर जे एस पुस्तकालय का उपयोग कर एक छोटा सा पक्ष परियोजना पर काम कर रहा हूं और मुझे Chrome डेवलपर टूल एमुलेटर पर कोई समस्या हुई थी गया है पर घटना को छूने का जवाब और दो iOS 7 उपकरणों पर जबकि डिबगिंग । ऐसा लगता है कि डेस्कटॉप ब्राउज़र पर ठीक काम करता है। यहां बेवकूफ: http://jsfiddle.net/w80baz5g/5/ और नीचे अधिक जानकारी।से अधिक तत्व मोबाइल वेबकिट और हैमर जे एस

मैं तत्वों के एक समूह है, इस तरह:

<div> 
    <img class="item" id="item0" src="http://placehold.it/300x300"> 
    <img class="item" id="item1" src="http://placehold.it/300x300"> 
    <img class="item" id="item2" src="http://placehold.it/300x300"> 
</div> 

और हैमर जे एस एक नल घटना को सुन:

function initItems(el) { 
    var itemToTap = new Hammer.Manager(el, itemOptions); 
      itemToTap.add(new Hammer.Tap()); 
      itemToTap.on("tap", function(event) { 
       console.log("tapped: " + event.target); 
     }); 

} 

$(".item").each(function(){ 
    var itemToInit = $(this)[0]; 
    initItems(itemToInit); 
}); 

जबकि डेस्कटॉप ब्राउज़र (क्रोम, सफारी) में सब कुछ ठीक लग रहा है , मोबाइल पर केवल तीन तत्वों में से पहला टैप इवेंट का जवाब देता है लेकिन कंसोल से पता चलता है कि यह सभी तीन तत्वों के लिए प्रतिक्रिया देता है? दूसरा और तीसरा तत्व बिल्कुल प्रतिक्रिया नहीं दे रहा है। यहाँ

फिडल: http://jsfiddle.net/w80baz5g/5/

Am मैं कुछ याद आ रही? क्या उन घटनाओं/तत्वों का मोबाइल ब्राउज़र द्वारा अलग-अलग व्यवहार किया जाता है? वे टैप ईवेंट में अलग-अलग प्रतिक्रिया क्यों नहीं दे रहे हैं?

मदद की बहुत सराहना!

+1

FYI करें, मैं इस समस्या के लिए एक समाधान यहाँ पोस्ट किया है: http://stackoverflow.com/a/29572912/1339923 – Lambart

उत्तर

1

बजाय:

$(".item").each(function(){ 
    var itemToInit = $(this)[0]; 
    initItems(itemToInit); 
}); 

उपयोग करके देखें:

$(".item[id^='item']")... 

या:

$("[id^='item']")... 

और देखो क्या होता है।

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