0

从我所做的挖掘来看,我想使用 .on 但我注意到如何去实现它。我还在学习 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

4

1 回答 1

2

这条线

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

有三个问题:

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

  2. 您为div包含表单字段的 ID 提供了 ID newsiteX,但该行正尝试使用 ID 来查找它newX

  3. 创建 new 后div,您正在递增site_count,但后来您尝试使用 的值查找 div site_count,因此您不会。也就是说,如果site_countis0并且您创建了一个新 div,它将具有id "newsite0"并且site_count将递增到1. 然后,当您在单击时将其删除时,即使您修复了上述项目,您也会寻找newsite1而不是newsite0.

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

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

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

于 2013-02-02T09:15:16.243 回答