2013-07-23 31 views
6

Ben drupal broşür modülü kullanarak ve tıklamada bir pop-up sahip olmak istiyorum ve gezinip zaman sonra, fareyle üzerine gelindiğinde köşede göstermek ediyorum. Şu anda pop-up çalışıyorum ama mouseover ekleyemiyorum. Her yerde sana "GeoJSON nesnesine wih özelliğin bir farenin üzerinde ekleyebilir ama bu modül üzerinden kullanmaya söz konusu nesneye erişimleri var gibi görünmüyor söylüyor okumak ettik. İşte benim Js kodudur.Yaprakçık js eklentisi ile açılır ve gezinme nasıl yapılır?

(function ($) { 
Drupal.behaviors.maps = { 
attach:function (context, settings) { 

    // Add legends to each leaflet map instance in Drupal's settings array 
    $(settings.leaflet).each(function() { 
    // Get the map object from the current iteration 
    var map = this.lMap; 

    // Create a legend class that will later be instantiated and added to the map 
    var legend = L.Control.extend({ 
     options: { 
     position: 'bottomleft' 
     }, 

     onAdd: function (map) { 
     // create the control container div with classes 
     var container = L.DomUtil.create('div', 'info legend'); 

     var html = '<h1>Status</h1>'; 
     html += '<ul>'; 
     html += ' <li><span class="color home"></span> Available Home</li>'; 
     html += ' <li><span class="color lot"></span> Available Lot</li>'; 
     html += ' <li><span class="color not-available"></span> Not Available</li>'; 
     html += '</ul>'; 
     container.innerHTML = html; 

     return container; 
     } 
    }); 
    map.scrollWheelZoom.disable(); 
    map.addControl(new legend()); 
    }); 
} 
}; 
})(jQuery); 

Ben bunu yapabilirim, nasıl her özellik için vurgulu bir eklemem gerekiyor, pop-up çalışma var size GeoJSON katmanı oluştururken, işlevleri geçebilir

cevap

3

:?

onEachFeature belirtir mouseover fonksiyonunun

var onEachFeature = function onEachFeature(feature, layer) { 
     layer.on({ 
      mouseover: highlightFeature, 
      mouseout: resetHighlight, 
      click: zoomToFeature, 
      pointToLayer: pointToLayer 
     }); 
    }; 

Örnek: olaya bağlı olarak hangi işlevleri çağrılacak olan

Sen tasarım uyacak şekilde yukarıdaki kodunu değiştirmek gerekir, ancak alabilirsiniz nasıl gösterir
function highlightFeature(e) { 
    var layer = e.target; 

    layer.setStyle({ // highlight the feature 
     weight: 5, 
     color: '#666', 
     dashArray: '', 
     fillOpacity: 0.6 
    }); 

    if (!L.Browser.ie && !L.Browser.opera) { 
     layer.bringToFront(); 
    } 
    map.info.update(layer.feature.properties); // Update infobox 
} 

her özellik üzerinde çalışıp durun.

+2

bununla sorunu elle GeoJSON katmanı oluşturmak kalmamasıdır. Drupal modülü ile veriyi bir "leaflet_render_map" fonksiyonuna aktarıyorum, bu yüzden broşür modülünü doğrudan düzenlemeden geoJson nesnesine doğrudan erişimim yok – jakecraige

İlgili konular