2013-07-23 4 views
6

Я использую модуль листовки drupal и хочу, чтобы у вас было всплывающее окно, а затем наведите курсор мыши, чтобы он появился в углу при наведении указателя мыши. В настоящее время у меня всплывающее окно работает, но не может добавить курсор мыши. Всюду, где я читал, вы говорите, что вы можете добавить курсор мыши к объекту с объектом geoJson, но не похоже, что у меня есть доступ к этому объекту, используя его через этот модуль. Вот мой код Js.Как сделать всплывающее окно и наведите курсор с плагином js-плагина?

(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); 

у меня есть всплывающая работа, мне нужно добавить по наведению для каждой функции, как я могу это сделать

ответ

3

При создании GeoJSON слоя, вы можете передать функции:?

onEachFeature указывает какие функции будут называться в зависимости от события:

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

Пример функции наведения мыши:

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 
} 

Вы должны изменить код выше, чтобы соответствовать вашему дизайну, но он показывает, как вы можете получить зависание каждой функции.

+2

Проблема в том, что я не создаю слой geoJson вручную. С модулем Drupal я передаю данные функции «leaflet_render_map», поэтому без непосредственного редактирования модуля листовки у меня нет прямого доступа к объекту geoJson – jakecraige