javascript - 删除由 Google map 标记点击触发的动态创建的 <div>

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

从我所做的挖掘看来,我想使用 .on 但我知道如何去实现它。我仍在学习 javascript 和 jquery 所以我可能会错过一些东西......

将标记添加到 Google map (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

最佳答案

这一行

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

存在三个问题:

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

  2. 您给出的是div包含表单字段 ID newsiteX ,但该行试图使用 ID newX 来查找它相反。

  3. 创建新的 div 后,您正在递增 site_count ,但稍后您尝试使用 site_count值来查找 div ,所以你不会。也就是说,如果site_count0然后您创建一个新的 div,它将具有 id "newsite0"site_count将增加到 1 。然后,当您点击删除它时,即使您修复了上面的项目,您也会寻找 newsite1而不是newsite0 .

您没有展示足够的代码,让我无法自信地为您纠正它,但可能是这样的:

$('#newsite' + (site_count - 1)).remove();

也就是说,您可能想退一步并更深入地了解该结构,这似乎有点脆弱(但可能没问题)。

关于javascript - 删除由 Google map 标记点击触发的动态创建的 <div>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14660365/

相关文章:

javascript - 在 Node.js/Express.js 中测试和解析 JSON 响应

javascript - 使用变换矩阵的 SVG 动画

jquery - 学习使用 React 但我对如何合并 Promise 感到困惑

google-maps - 对于某些位置,Google 时区 API 返回 ZERO_RESULTS

google-maps - 如何使用react-google-maps库创建折线

javascript - jQuery - Ajax 在某些帖子上返回错误 500

javascript - 在具有特定类的每个 div 之前插入一个数字

javascript - 如何禁用某些 html 页面上的右键单击(但有一些异常(exception))

javascript - 使用 jquery 动态添加字幕内容

javascript - 在 Google Maps api v3 中制作可拖动部分