2013-01-11 35 views
5

Trong Tờ rơi, có thể xác định điểm đánh dấu hoặc polyline bằng {clickable: false}, để một lần nhấp được chuyển đến bất kỳ thứ gì nằm bên dưới - có thể là bản đồ hoặc hình dạng có thể nhấp vật?Các điểm đánh dấu và đường bao trong Leaflet

Hiện tại tôi giải quyết vấn đề này bằng cách làm cho điểm đánh dấu/polyline có thể nhấp và chuyển sự kiện trở đi. Nhưng điều này dẫn đến con trỏ chuột luôn hiển thị dưới dạng biểu tượng bàn tay. Lý tưởng nhất, con trỏ chuột sẽ trông giống như con trỏ bình thường hoặc bàn tay, tùy thuộc vào việc bên dưới điểm đánh dấu/polyline có thể nhấp được hay không.

+0

Tại sao những bạn chỉ cần thử nó thay vì yêu cầu? Câu trả lời là "có", đó là hành vi của '{clickable: false}', như được định nghĩa trong tài liệu –

+2

Bởi vì tôi đã thử nó trước khi hỏi? Câu trả lời của bạn chỉ đơn giản là sai. Trong trường hợp thử nghiệm của tôi, tôi có một đối tượng polyline, đó là có thể nhấp và một đối tượng multi-polyline trực tiếp phía trên nó (làm nổi bật một số phần ob polyline một cách hiệu quả), đó là không thể nhấp. Và trong khi con chuột ở trên đa đường kẻ, bạn không thể nhấp qua đường polyline bên dưới. – shiin

+0

hiển thị testcase của bạn –

Trả lời

0

Đây có thể không phải là câu trả lời bạn đang tìm kiếm, nhưng bạn có thể sử dụng các nhóm tính năng để có tất cả các ô vuông có thể nhấp vào phía trước để các hành động được hiển thị.

var lg_noclick = new L.FeatureGroup().addTo(map); 
var lg_click = new L.FeatureGroup().addTo(map); 
// Add lines 
lg_click.bringToFront(); 

cập nhật fiddle

Ngoài ra nếu bạn có thể đủ khả năng để biết đường trước mặt, đúng trật tự của khi bạn thêm các dòng nó sẽ làm việc tốt.

0

Tôi biết điều này không phải là lý tưởng nhưng nó phù hợp với tình hình của tôi tốt, vì vậy nó có thể là tốt cho bạn là tốt.

này giấu các biểu tượng và mang nó trở lại sau một giây sử dụng mouseentermouseleave sự kiện:

$('.leaflet-marker-icon').mouseenter(function() { 
    $(this).hide(); 
}); 

$('.leaflet-marker-icon').mouseleave(function() { 
    $(this).delay(1000).show(0); 
}); 
Các vấn đề liên quan