2015-11-03 83 views
6

的設置是在PhoneGap的應用谷歌地圖的JavaScript API(V3),和我設置自動完成:無法從谷歌地圖的JavaScript API自動完成選擇地址

var that = this 
this.autocomplete = new google.maps.places.Autocomplete(domNode) 
this.listener = google.maps.event.addListener(
    this.autocomplete, 'place_changed', function (place) { 
    var place = that.autocomplete.getPlace() 
    ... 
    } 
}) 

而這個代碼工作在我的Android構建並在瀏覽器中。問題是當我在iOS下運行這個。我在搜索框中輸入了一個字符串,顯示了自動完成結果,但點擊其中一個只是關閉了下拉菜單,但結果未填充到搜索框中。聽衆也不會觸發。 Javascript控制檯沒有錯誤顯示。

這是所有Google的代碼,所以我不知道如何調試。任何幫助,將不勝感激。謝謝!

回答

2

在我的一個項目中,經過數小時的調查,我一直在iPhone上遇到同樣的問題,發現問題是由fastclick lib引起的。

FastClick.prototype.onTouchEnd = function(event) { 
    ... 
    if (!this.needsClick(targetElement)) { 
     event.preventDefault(); 
     this.sendClick(targetElement, event); 
    } 

    return false; 
}; 

FastClick.prototype.needsClick = function(target) { 
    'use strict'; 
    switch (target.nodeName.toLowerCase()) { 

    // Don't send a synthetic click to disabled inputs (issue #62) 
    case 'button': 
    case 'select': 
    case 'textarea': 
     if (target.disabled) { 
      return true; 
     } 

     break; 
    case 'input': 

     // File inputs need real clicks on iOS 6 due to a browser bug (issue #68) 
     if ((this.deviceIsIOS && target.type === 'file') || target.disabled) { 
      return true; 
     } 

     break; 
    case 'label': 
    case 'video': 
     return true; 
    } 

    return (/\bneedsclick\b/).test(target.className); 
}; 

因爲.pac-container只有divspanFastClick假定它是不可點擊,並呼籲preventDefault並克服這個問題,我已經添加needsclick類所有.pac-*元素

+0

見http://stackoverflow.com/a/20056485/1823675關於如何將類添加到'.pac- *'元素。 –

相關問題