2016-03-30 9 views
1

Bu benim bilgim: http://jsfiddle.net/anton9ov/d8yga33f/ GeoJSON dosyasındaki kimlik numaralarına göre seçmeme göre bir öğe sırası düzenlemem gerekiyor.Açılan liste öğelerinin sırasını, GeoJSON özelliklerinde kimlik numaralarına göre sıralama

map.on("layeradd", function(e) { 
    if(!e.layer.options) { 
    return; 
    } 

    if((e.layer.options.id != "markerLayer1") && (e.layer.options.id != "markerLayer2")) { 
    return; 
    } 

    var markers = e.layer.getLayers(); 

    var mySelector = $("#mySelector"); 

    for(var i = 0; i < markers.length; i++) { 
    mySelector.append("<option value='" + L.stamp(markers[i]) + "'>" + markers[i].feature.properties.name + "</option>"); 
    } 
}); 

cevap

1

Array.prototype.sort() kullanarak deneyin:: öğeler listesinde görünmeyecek benim kod parçasıdır

map.on("layeradd", function(e) { 
    // ... 
    var markers = e.layer.getLayers(); 

    // Get the dropdown 
    var mySelector = $("#mySelector"); 

    markers.sort(function(a,b) { 
    // get the ids, and parse them as int 
    var aId = parseInt(a.feature.properties.id,10), 
     bId = parseInt(b.feature.properties.id,10); 
    return aId < bId ? -1 : aId > bId ? 1 : 0 
    }).forEach(function(marker) { 
    mySelector.append("<option value='" 
     + L.stamp(marker) + "'>" 
     + marker.feature.properties.id // I added the marker id 
     + '. ' 
     + marker.feature.properties.name 
     + "</option>"); 
    }) 
}); 

Bkz forked fiddle