2011-08-31 157 views
0

我動態構建的GMAP插件的選項和需要知道如何檢查,看是否標誌已經存在。檢查選項存在已經

這是它是如何被內置在javascript:

success: function(data) { 
    var markers = { controls: true, scrollwheel: true, markers: [], zoom: 8 }; 
    $.each(data["events"], function(id, event) { 
    // .. do other stuff with the data 
    if(showmap) { 
     // add location to maps list prevent multiples 
     // 
     // How do I check to see if it already exists? 
     // 
     // event[] is a JSON Object, BTW 
     // 
     //if((markers.indexOf(event['LocLatitude']) == -1) && (markers.indexOf(event['LocLongitude']) == -1)) { 
     marker1 = { latitude: event['LocLatitude'], 
        longitude:event['LocLongitude'], 
        html: '"'+event['LocName']+'<br />'+event['LocAddress']+'<br />'+event['LocCity']+', '+event['LocState']+'"', 
        icon:{image: "/images/gmap_pin_orange.png", 
         iconsize: [26, 46], 
         iconanchor: [12,46], 
         infowindowanchor: [12, 0] 
         } 
       }; 
     markers.markers.push(marker1); 
     //} // if((markers.indexOf(event['LocLatitude']) == -1) 
    } // if(showmap) 
    } // $.each(data["events"] 
}, // success: 

上面的註釋的代碼顯示瞭如何在做它的時候我是建設作爲一個字符串,該技術不再起作用。 我需要知道如何檢查,看看是否被添加的標記已經將其推前markers.markers存在。

回答

0

在這裏,我遍歷標記並檢查我想要的,返回false將我從$ .each中取出,返回true繼續。

marker_exists = false; 
$.each(markers.markers, function(i, n){ 
    if(markers.markers[i].latitude == event['LocLatitude'] && markers.markers[i].longitude == event['LocLongitude']) { 
    if(markers.latitude == "") { 
     markers.latitude = event['LocLatitude']; 
     markers.longitude = event['LocLongitude']; 
    } 
    marker_exists = true; 
    return false; 
    } else { 
    return true; 
    } 
}); 
0

而是推動標記表中的,你能不能給它們使用數字ID或以某種方式創建基於上下文ID?看到我對這個問題的回答: How to select and manipulate google maps (V3 JS API) marker by ID?

+0

我已經找到了答案,稍後會發布,因爲這個愚蠢的東西不會讓我自己回答或在評論中發佈完整的代碼。 – MB34