2013-08-02 62 views
1

我有一个页面,基本上是一个巨大的全屏谷歌地图。我无法获得任何类型的焦点功能。任何想法为什么?该代码是很长,所以这里是URL,然后一些摘录:jQuery表单专注于谷歌地图

我们正在浏览的页面,在这里我们想要的位置搜索输入框采取集中在页面加载后:http://api.raprec.com/maps/frame/

的表单字段(注意我也试过它什么也没做HTML5的调焦的属性:

<input type="text" name="location" id="location" value="" TABINDEX=1 autofocus />

的JavaScript行“移动形式进入地图”谷歌地图文档中建议:

map.controls[google.maps.ControlPosition.TOP_RIGHT].push(document.getElementById('sidepanel'));

在页面的页脚中的JavaScript:

jQuery(document).ready(function() {jQuery('#location').focus(); });

回答

1

元素可能只集中。

你的尝试很有效,但是来得太早,因为当元素移动到它的控制位置时,它会失去焦点。您需要的是在元素已经放置到地图上时设置焦点。由于没有事件发现它何时发生(我不建议在这里使用DOMNodeInserted),所以在设置焦点之前需要延迟。

等待tilesloaded -event似乎是足够了:

google.maps.event 
.addListenerOnce(map,'tilesloaded',function(){jQuery('#location').focus()});