2012-04-10 35 views
0

我有一個谷歌地圖和一個滾動div在它的權利。我遇到的問題是,如果有人點擊並拖動地圖,然後移動到滾動div並按下向下箭頭或pgdn或類似的東西,那麼Google地圖也會移動。blur()谷歌地圖沒有聽到關鍵事件

我不想在地圖中禁用鍵盤輸入,我想讓它啓用,但我想找到一種方式,當用戶在右側滾動滾動div時,我可以引發某種模糊( )事件,這些事件會使地圖偏離焦點,使其不會「聽到」鍵盤輸入。

如果我在地圖畫布外單擊,但我試過在用戶將鼠標懸停在右側沒有運氣的情況下嘗試調用各種地圖畫布元素上的blur()。

有沒有人遇到類似的問題(並希望解決)?

回答

1

好的,我解決了一半的問題,如果我解釋正確的第一位。我假設你想要的行爲是,當你的鼠標在外面進行映射時,按鍵可以向上或向下移動滾動div?否則,我寫的東西可能會工作(:

因爲我不能強制點擊滾動div,我想出的黑客是插入一個不可見的文本輸入,並使腳本點擊此文本框內。停止影響地圖的按鍵,但我們沒有讓滾動條移動,我在舊版瀏覽器中擔心,這個點擊事件會自動將div移動到文本框所在的位置,取決於你的頁面,但我認爲它是一個更好的主意,以保持其位置固定,如下面的地圖。

http://jsfiddle.net/xNT96/2/

我只是嘗試在Chrome瀏覽器(按鍵做鼠標移開後沒有),和Firefox(如果是滾動CLI當鼠標懸停時,滾動div將隨鍵盤按下而移動)。即使點擊div也不一致。所以這是遠非理想的解決方案,但希望我給你一些想法:(