2010-07-15 61 views
3

我正在爲手機創建一個網絡應用程序,如果他們長按地圖的某個部分,會發生一些情況。不幸的是,我不能使用帶有mousedown/mouseup組合的window.setTimeout(..),因爲Maps API不包含這些事件,因爲它會中斷拖動事件。有沒有另一種方法來做到這一點?必須有一種方式,因爲當你長時間在谷歌地圖上右鍵點擊電腦時,手機上的Maps webapp彈出相同的菜單 - 只是不知道如何!請告訴我!!Google Maps API上的Longpress事件?

在此先感謝!

回答

0

優秀的問題。經過多次挖掘,我發現了關於Android和iPhone的觸摸和手勢事件的以下頁面。希望這篇文章能有點用處你:

http://backtothecode.blogspot.com/2009/10/javascript-touch-and-gesture-events.html

要細說,你可能會想處理touchstart和touchend事件,也許保持「光標」的位置在軌道每一個來確定它是一個拖動還是僅僅是一臺印刷機。祝你好運,如果你不認爲這是一個明確的答案,我不會責怪你。 :P

+0

非常感謝!我明天就會出手,我會讓你知道的! – MapWeb 2010-07-15 02:14:28

+0

沒問題。 :)我很好奇,聽聽它是怎麼回事。 – Faisal 2010-07-15 09:13:38

+0

不幸的是,這並沒有工作:(..我會繼續搜索,希望我會找到的東西,但無論如何,謝謝! – MapWeb 2010-07-16 21:11:42

1

我看不出有什麼理由不能使用DOM mousedown/mouseup事件而不是Maps API事件來檢測長按。例如,您甚至可以使用地圖API附加聽衆,例如(假設您擁有包含地圖的元素):

google.maps.event.addDomListener(document.getElementById('map_canvas'), 'mousedown', function() { console.log("Test") });