删除从Google地图标记触发的动态创建的<div>单击</div>

时间:2013-02-02 09:12:31

标签: javascript jquery google-maps-api-3 dynamic-data

从挖掘过程中我已经完成它看起来我想要使用。但是我要注意如何实现它。我还在学习javascript和jquery,所以我可能会遗漏一些东西......

将标记添加到Google地图(v3 api)时,会运行以下代码。它会创建一个标记并添加一个表单字段。如果用户然后单击新创建的标记,则标记将被隐藏,然后代码也应该删除该表单。标记删除很好,但我无法删除。这是我正在寻求帮助的线:

    $('#newdiv + site_count).remove(); 

如果我手动将newdiv + site_count替换为有效数字(比如6,那么newdiv6)代码可以正常工作,我只是无法弄清楚如何实时引用它......最后这里是相关代码的其余部分:

google.maps.event.addListener(map, "click", function(event) {
    marker = new google.maps.Marker({
      position: event.latLng,
      map: map
    });
    newlocation = "<div id='newdiv" + site_count + "'><input type='text' size='3' name='loc[" + site_count + "]' id='newid" + site_count + "' value = '0' /></div>";
                $('#here').append(newlocation)
    google.maps.event.addListener(marker, "click", function(event) {
                marker.setVisible(false);
                $('#new+ site_count).remove(); 
        });
        site_count++;        


})

感谢您花时间看看我的问题。 --AJ

1 个答案:

答案 0 :(得分:2)

这一行

$('#new+ site_count).remove();

有三个问题:

  1. 没有结束',因此会导致语法错误。

  2. 您将div包含ID newsiteX的表单字段,但该行正在尝试使用ID newX来查找它。

  3. 创建新div后,您正在递增site_count,但稍后您尝试使用{{>新值{{}来查找div 1}},所以你不会。也就是说,如果site_countsite_count并且您创建了新的div,那么0 id"newsite0"会增加到{{1} }}。然后,当您单击时将其删除,即使您修复了上述项目,您也会找到site_count而不是1

  4. 你没有向我展示足够的代码,让我自信地为你纠正,但可能是这样的:

    newsite1

    那就是说,你可能想退后一步,深入研究一下这个结构,这看起来有点脆弱(但可能还不错)。