2014-09-12 8 views
5

मेरे पास AngularJS में लिखा गया कॉर्डोवा मोबाइल ऐप है। मेरे आवेदन में एनजी-टच जोड़ने से कुछ एचटीएमएल व्यवहार ठीक से काम नहीं कर पाता है। इस समस्या का एक उदाहरण एक चेकबॉक्स का अजीब व्यवहार है जो एनजी-क्लिक से जुड़े HTML तत्व में लपेटा जाने पर चेक को चिह्नित नहीं करता है। यह डेस्कटॉप/लैपटॉप पर पूरी तरह से काम करता है, समस्या मोबाइल उपकरणों पर दिखाई देती है।एनजी-क्लिक और एनजी-टच मोबाइल डिवाइस

उदाहरण:

यह मोबाइल उपकरणों में काम नहीं करता:

<div ng-click="alertSomething()"> 
    <input type="checkbox" ng-model="data" name="data" id="data" /> 
    <label for="data">This checkbox needs to be pressed a couple of times before it is marked as checked 
    in any mobile device.</label> 
    </div> 

यह एक ठीक से काम करता है:

<input type="checkbox" ng-model="anotherData" name="anotherData" id="anotherData" /> 
    <label for="anotherData">This checkbox responds correctly on mobile</label> 

अजीब हिस्सा एनजी स्पर्श मॉड्यूल है जब वह यह है कि हटा दिया गया, यह उम्मीद के अनुसार ठीक से काम करता है। कृपया मेरी मदद करें, मैं अब कुछ घंटों के लिए इस समस्या को हल करने की कोशिश कर रहा हूं।

मोबाइल पर इस plunker खोलने का प्रयास करें: http://plnkr.co/edit/6LPeJP9QO6NMSpNuQqtQ?p=preview

+0

आप मैं jQuery स्पर्श पंच (http सुझाव है jQuery उपयोग कर रहे हैं: //touchpunch.furf। कॉम /) मैंने हाल ही में एक मिनी गेम डब्ल्यू पर काम किया है जिस पर क्लिक/ड्रैग/ड्रॉप था और बीटा को स्पर्श की आवश्यकता नहीं थी, लेकिन बस उस लाइब्रेरी को जोड़ना और कुछ और नहीं करना स्पर्श सब कुछ के लिए पूरी तरह से काम करता है। – GillesC

+0

उस सिर के लिए आपको बहुत बहुत धन्यवाद, लेकिन मुझे लगता है कि राईबॉलर का जवाब मेरे लिए भी काम करता है। – Drake105

+0

हाहा हां सिर्फ एक सुझाव है, उत्तर नहीं है और वैसे भी कोई jQuery टैग नहीं था :) प्लगइन अनिवार्य रूप से उत्तर के समान ही काम करता है, बस टच इवेंट को गैर-स्पर्श ईवेंट पर लिंक करें। – GillesC

उत्तर

5

मैं वास्तव में से पहले इस समस्या का सामना करना है, क्या मैंने किया था एक और निर्देश है कि एक क्लिक करें घटना simulates कि विशिष्ट समस्या के लिए ngTouch के ng-click संस्करण को बदलने के लिए बनाने के लिए किया गया था।

FORKED PLUNKER

निर्देशक

.directive('basicClick', function($parse, $rootScope) { 
    return { 
    compile: function(elem, attr) { 
     var fn = $parse(attr.basicClick); 
     return function(scope, elem) { 
     elem.on('click', function(e) { 
      fn(scope, {$event: e}); 
      scope.$apply(); 
     }); 
     }; 
    } 
    }; 
}); 

एचटीएमएल

<div basic-click="alertSomething()"> 
    <input type="checkbox" ng-model="data" name="data" id="data" /> 
    <label for="data">This checkbox needs to be pressed a couple of times before it is marked as checked 
    in any mobile device.</label> 
    </div> 
+0

बहुत बहुत धन्यवाद! – Drake105

+2

अरे धन्यवाद, 2016 क्या आपके पास कोई अन्य समाधान है ?? – user2936008

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