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();

次の 3 つの問題があります。

  1. 終了がない'ため、構文エラーが発生します。

  2. divフォームフィールドを含むに ID を与えていますnewsiteXが、その行は代わりに ID を使用してそれを見つけようとしていますnewX

  3. 新しい を作成した後div、 をインクリメントしていますが、後で の新しい値をsite_count使用して div を見つけようとしているため、そうしません。つまり、 is で新しいdiv を作成すると、 があり、にインクリメントされます。次に、クリックして削除しようとすると、上記の項目を修正しても、.site_countsite_count0id "newsite0"site_count1newsite1newsite0

自信を持って修正できるほど十分なコードを示していませんが、おそらく次の行に沿ったものです。

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

とはいえ、一歩下がって構造を詳しく見てみると、これは少し壊れやすいように思えます (ただし、問題ない可能性があります)。

于 2013-02-02T09:15:16.243 に答える