2014-12-03 77 views
14

我使用自定義divIcons作爲我的Leaflet標記。我想添加一個邊框任何標誌我點擊,用一些簡單的CSS:如何將一個類添加到Leaflet標記?

.selectedMarker { 
border: 10px solid gold; 
} 

然而,與jQuery以下不工作:

$(marker).addClass('selectedMarker'); 

於是我試圖用宣傳單的自己addClass() method。我試圖通過以下方式呼叫使用它:

marker.addClass('selectedMarker'); 
L.addClass(marker, 'selectedMarker'); 
addClass(marker, 'selectedMarker'); 
DomUtil.addClass(marker, 'selectedMarker'); 

這些都不起作用。如何將selectedMarker類添加到我的標記?

+0

什麼是$(標記)? – Cattla 2014-12-03 09:03:09

+0

jQuery。這不起作用,因爲jQuery的目標是DOM元素,而不是JavaScript對象。 – ohyeah 2014-12-03 09:04:44

回答

15

我已通過添加類來標記與

var marker = L.marker(loc); 
marker.on('click', function() { 
    $(marker._icon).addClass('selectedMarker'); 
} 

完成它,然後使用CSS

.leaflet-marker-icon.selectedMarker{ 
    //your css 
} 
+0

很好,謝謝! – ohyeah 2014-12-03 09:10:14

8

而不使用jQuery,

marker._icon.classList.add("className"); 
+0

確認此作品,謝謝。這是我認爲最好的方法。不幸的是'classList'在用戶點擊它之前一直未定義,所以在用這個方法創建它之後不能添加類。另外,對於那些使用傳單的markercluster,它在'event.layer._icon'中。 – dtgq 2017-03-04 03:44:33

9

在1.0和0.7您可以使用L.DomUtil從DOM元素添加刪除類:

L.DomUtil.addClass(marker._icon, 'className'); 
L.DomUtil.removeClass(marker._icon, 'className'); 
相關問題