2013-01-06 82 views
0

您好我想創建一個jQuery/javascript函數,將作爲標題狀態中刪除所有的標記在我var markersArray,做我的PHP腳本的請求提出新的標誌取代。我很難做到這一點,因爲我對JS不好,所以這裏是我的代碼。刪除所有標記,並用新的使用設置過濾

我在網頁上有3個濾波器,是選擇元素 這裏是我的JS腳本

 $('#lgu,#category,#type').change(function(){ 

     google.maps.Map.prototype.clearOverlays = function() { 
     for (var i = 0; i < markersArray.length; i++) { 
     markersArray[i].setMap(null); 
     } 
     } 
var lgu = $('#lgu').val(); 
var category = $('#category').val(); 
var type = $('#type').val(); 
     $.get('xmlquery.php', { input: lgu, input2: category, input3:          type},function(data){ 

downloadUrl("xmlspitter.php", function(data) { 
    var xml = data.responseXML; 
    var markers = xml.documentElement.getElementsByTagName("marker"); 
    for (var i = 0; i < markers.length; i++) { 
     var name = markers[i].getAttribute("name"); 
     var address = markers[i].getAttribute("address"); 
     var type = markers[i].getAttribute("type"); 
     var point = new google.maps.LatLng(
      parseFloat(markers[i].getAttribute("lat")), 
      parseFloat(markers[i].getAttribute("lng"))); 
     var html = "<b>" + name + "</b> <br/>" + address; 
     var icon = customIcons[type] || {}; 
     var marker = new google.maps.Marker({ 
     map: map, 
     position: point, 
     icon: icon.icon, 
     shadow: icon.shadow 
     }); 
     markersArray.push(marker); 
     bindInfoWindow(marker, map, infoWindow, html); 
    } 
    }); 
    }); 

    function bindInfoWindow(marker, map, infoWindow, html) { 
    google.maps.event.addListener(marker, 'click', function() { 
    infoWindow.setContent(html); 
    infoWindow.open(map, marker); 
    }); 

    } 

    function downloadUrl(url, callback) { 
    var request = window.ActiveXObject ? 
    new ActiveXObject('Microsoft.XMLHTTP') : 
    new XMLHttpRequest; 

    request.onreadystatechange = function() { 
    if (request.readyState == 4) { 
    request.onreadystatechange = doNothing; 
    callback(request, request.status); 
    } 
    }; 

    request.open('GET', url, true); 
    request.send(null); 
    } 

    }); 

希望得到任何幫助。

注意我的小菜與JS的意思我也是菜鳥調試請幫助。

+1

[工作「類別」地圖與XML數據(HTTP://www.geocodezip的.com/v3_MW_example_categories.html)。不會查詢有關更改的新數據,但可能會幫助您找到問題。 – geocodezip

+0

你的代碼實際上做了什麼嗎?你能提供一個鏈接或一個jsfiddle,展示你遇到的問題嗎? – geocodezip

回答

1

你的變化,回調將創建一個函數(擴展了google.maps.Map原型與函數)clearOverlays(),但你沒有地方調用這個函數,例如:

map.clearOverlays() 

...所以沒有任何反應

但我不明白爲什麼要在這裏建立一個功能可言,只需運行循環:

$('#lgu,#category,#type').change(function(){ 

    for (var i = 0; i < markersArray.length; i++) { 
    markersArray[i].setMap(null); 
    } 

    /* continue with your code*/ 


}); 
相關問題