私はこのコードを持っています:
siteCheckboxes.each(function () {
var lat = $(this).attr("lat");
var lng = $(this).attr("lng");
var myLatlng = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker({ icon: smallDotIcon, position: myLatlng, map: map, title: $(this).attr("siteName") });
var $checkbox = $(this);
$(this).click(function () {
if ($(this).attr("checked")) {
marker.setIcon(null);
} else {
marker.setIcon(smallDotIcon);
}
});
google.maps.event.addListener(marker, 'click', function () {
$checkbox.click();
});
});
アイデアは、サイトの名前が付いたいくつかのチェックボックスと、マップ上の各サイトに小さな点が付いたマップがあるということです。ユーザーがサイトのチェックボックスをオンにすると、マップ上のマーカーが完全なマーカーに変わります。アプリケーションのこの部分は正常に動作します。
ユーザーがマーカーをクリックすると、関連するチェックボックスのステータスとマーカーの形状が変化するはずですが、機能しません。
ユーザーがマーカーをクリックすると、チェックボックスがオンの状態になり、マーカーの形状が同期しなくなりました。何が問題ですか?
一部のデバッグでは、ユーザーがマーカーをクリックすると、マーカーのクリック イベントが呼び出され、関連するチェックボックスのクリック イベントも呼び出されますが、チェックボックスのクリック イベントが終了するとチェック状態が変化します。
クリックイベントが終了した後に変更されるのはなぜですか?