0

我要疯了。我尝试了在网络上找到的所有可能的解决方案(这似乎对每个人都有效),但似乎都不起作用,因为我希望它在 Google Maps InfoWindow 中。

InfoWindow 内容是通过 Ajax 加载的,所以我不确定在哪里放置 Jquery 位 - 尽管我已经尝试过(我认为!)所有可能的组合。

尝试的解决方案: 使用 jQuery 制作 Awesome Form's Inline LabelsjQuery Inline Form LabelsAwesome Inline Form Labels 和其他...

唯一有效的是 HTML5,placeholder但我对此并不满意,因为它在 IE10 下不能很好地工作。

这是所需效果的快照:

在此处输入图像描述

我希望它可以在下面的这个 InfoWindow 中工作。看到文本“Nome optional”了吗?我希望它是一个内联模糊标签,如上图所示。

在此处输入图像描述

这是用于加载 InfoWindow 内容的代码:

function load_newinfowindow_content(lat, long, infowindow){
    $.ajax({
    url: site_root +'map/newmarker_infowindow/'+lat+'/'+long,
    success: function(data){
      infowindow.setContent(data);
    }
  });
}

infoWindow 是基本的 HTML 表单。CSS 对所有页面都是全局的,包括 InfoWindow(并且工作正常)。

<form name="newMark" id="newMark" method=post action="<?php echo base_url();?>map/new_marker">
<input type=hidden name=latitude value="<?php echo $lat;?>"><input type=hidden name=longitude value="<?php echo $long;?>">
Deseja criar uma nova marcação aqui?
<label for="name">Nome opcional</label>
<input class="text name" type="text" id="name" name="name" size="20"/>
<input type="submit" value="Sim">

我已经尝试将 JQuery 的ready代码放在 InfoWindow HTML 中,并在调用页面的“外部”。两者都不起作用。关于为什么这不应该在 InfoWindow 中工作的任何提示?

4

1 回答 1

0

得到它的工作!通过尝试将 Javascript 代码放置在不同的位置,并且按照评论中的建议,甚至尝试使用domreadyInfoWindow 的事件,我发现它唯一真正起作用的地方。

在我的 AJAX 调用中加载内容,它变成了这样:

function load_newinfowindow_content(lat, long, infowindow){
    $.ajax({
    url: site_root +'map/newmarker_infowindow/'+lat+'/'+long,
    success: function(data){
      infowindow.setContent(data);
      processInLineLabels();
    }
  });
}

并且$( document ).ready(function()它存在于所有解决方案中以使其工作,我变成了一个函数,如下面的那个(但它也应该适用于其他函数)。

function processInLineLabels() {
  $('input[title]').each(function() {
      if($(this).val() === '') {
         $(this).val($(this).attr('title')); 
      }

   $(this).focus(function() {
      if($(this).val() == $(this).attr('title')) {
         $(this).val('').addClass('focused');  
      }
    });
    $(this).blur(function() {
       if($(this).val() === '') {
           $(this).val($(this).attr('title')).removeClass('focused');  
       }
     });
 });
}
于 2013-08-26T14:31:25.560 回答