2013-02-06 14 views
8

navigator.geolocation.getcurrentPosition पर कॉल करते समय सफलता कॉल पर एक या अधिक पैरामीटर कैसे पास कर सकते हैं?प्राप्त करने के लिए पैरामीटर कैसे पास करें CurrentPosition सफलता वापस कॉल करें?

foundLoc से getGeoLoc विधि से deviceready कैसे पास कर सकता हूं?

var app = { 

    onDeviceReady: function() { 
     alert = window.alert || navigator.notification.alert; 

     app.getGeoLoc('deviceready'); 
    }, 

    getGeoLoc: function (id) { 
     navigator.geolocation.getCurrentPosition(this.foundLoc, this.noLoc, { timeout: 3 }); 
    }, 

    foundLoc: function (position) { 
     var parentElement = document.getElementById('deviceready'); 
     var lat = parentElement.querySelector('#lat'); 
     var long = parentElement.querySelector('#long'); 

     lat.innerHTML = position.coords.latitude; 
     long.innerHTML = position.coords.longitude; 
    }, 

    noLoc: function() { 
     alert('device has no GPS or access is denied.'); 
    } 
}; 

उत्तर

14

लपेटें समारोह (स्थिति) {} इस प्रकार में जियोलोकेशन कॉलबैक। फिर आप अपने वास्तविक कॉलबैक फ़ंक्शन के रूप में कई तर्क जोड़ सकते हैं।

var app = { 

    getGeoLoc : function (id) { 

     var self = this; 

     navigator.geolocation.getCurrentPosition(function(position) { 

      var myVar1, myVar2, myVar3; // Define has many variables as you want here 

      // From here you can pass the position, as well as any other arguments 
      // you might need. 
      self.foundLoc(position, self, myVar1, myVar2, myVar3) 

     }, this.noloc, { timeout : 3}); 
    }, 

    foundLoc : function(position, self, myVar1, myVar2, myVar3) {}, 
}; 

आशा है कि इससे किसी और की मदद मिलती है जो इस पर ठोकर खा सकता है।

+0

मैंने उस पर ठोकर खाई और यह निश्चित रूप से मदद की। आपके लिए +1 :) –

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