无法在infoWindow中将焦点设置在输入字段上

时间:2010-06-14 15:44:19

标签: jquery google-maps

为什么焦点没有设置为noteTitle?

我正在使用谷歌地图API V3。

getNoteForm()返回一个输入字段“noteTitle”。

$(“#noteTitle”)。focus()在firebug中执行时效果很好。

点击地图时我调用此函数:

function setNewNoteInfowindow(latlng) {
 if (geocoder) {
       geocoder.geocode({'latLng': latlng}, function(results, status) {
   var address = "";

     if (status == google.maps.GeocoderStatus.OK) {
    if (results[1]) { 
     address =  results[1].formatted_address;
            }
         }

   newNoteInfowindow = new google.maps.InfoWindow({
    content: getNoteForm(latlng, address),
       size: new google.maps.Size(40,50)
   });

   newNoteInfowindow.open(map, newNoteMarker);

   google.maps.event.addListener(newNoteInfowindow, 'domready', function() {
          $("#noteTitle").focus();
      });

   google.maps.event.addListener(newNoteInfowindow, 'closeclick', function() {
          newNoteMarker.setVisible(false);
      });
  });
 }
}

1 个答案:

答案 0 :(得分:1)

在添加事件侦听器之前,您似乎正在打开infowindow。因此,在添加侦听器时,事件已经被触发。尝试颠倒open()和addListener()

的顺序
   google.maps.event.addListener(newNoteInfowindow, 'domready', function() {
          $("#noteTitle").focus();
      });

   newNoteInfowindow.open(map, newNoteMarker);