2015-06-17 55 views
2

在我的應用程序中,我使用谷歌地圖,並且一旦用戶右鍵單擊,我在地圖上創建位置。我有這個事件做把戲我,直到我在手機打開應用程序手機上的谷歌地圖觸摸事件

google.maps.event.addListener(map, 'rightclick', function (e) { 
    if (checkDistance(e.latLng)) { 
     if (viewModel.haveRolesToDoStuffOnProjectLevel()) { 
      geocoder.geocode({ location: e.latLng }, function (result) { 
       if (result.length > 0) { 
        var data = { 
         name: result[0].formatted_address.split(",")[0], 
         location: e.latLng, 
         address: result[0].formatted_address 
        } 
        if (viewModel.oldLocation()) { 
         moveLocationCreate(data); 
        } else { 
         startLocationCreate(data); 
        } 
       } 
      }); 
     } 
    } 
}); 

一切工作正常。在移動設備上,右擊事件不會觸發。我已經搜索找到一種方式來像長期點擊手機,但它不工作。任何人都可以幫我找到解決方案嗎?

+0

可能有些用處 - https://developer.mozilla.org/en-US/docs/Web/API/Touch_events – Craicerjack

回答

3

如果您在手機/平板電腦上試用this google maps event demo site,即使長時間點擊,也不會發生任何事情。這僅表示Google地圖不支持平板電腦事件。

但使用jQuery,您可以檢測到長時間點擊或其他「僅限移動」事件。但是,jQuery並不知道地圖,因此它會告訴你你點擊的地方。

因此,一個解決方案可能是同時使用Google Maps Click event,jQuery tabhold event

首先,讓tabhold設置一個標誌,表示這個點擊功能是從tabhold;然後在onclick函數中檢查當前點擊事件是否來自標籤,如果是,請執行該操作。

我有一個快速[jsfiddle演示] [4],我只是複製和粘貼一些代碼,所以它看起來有點醜。但希望它有幫助。

+0

我最終使用錘子JS作爲手勢。這是相當不錯的圖書館, – mohsinali1317

相關問題