我正在尝试重写grid_control.js
中的MapBox,以允许来自gridControl
的多个工具提示同时出现在同一个框中。
gridControl
因此被激活:
var gridLayer = L.mapbox.gridLayer('example-map.sdfagg22gd');
var tileLayer = L.mapbox.tileLayer('example-map.sdfagg22gd')
map.addLayer(tileLayer);
map.addLayer(gridLayer);
map.addControl(L.mapbox.gridControl(gridLayer));
但是,我不想重写源代码,而是扩展GridControl
类,并使代码与将来的mapbox.js
版本更兼容。
var GridControl = L.Control.extend({
options: {
pinnable: true,
follow: false,
sanitizer: require('sanitize-caja'),
touchTeaser: true,
location: true
},
我该怎么做,是否可取?
此外,有关如何同时允许多个工具提示的任何想法?我是否需要一个活动工具提示的计数器并根据它重做所有操作?任何指针都将非常感激。
根据我的理解,并发工具提示的可能性是可能的,因为带有工具提示内容的两个单独的框将显示{follow : false}
选项。但是如何将其转换为以鼠标为中心的移动工具提示(由{follow: true}
激活)?
答案 0 :(得分:0)
简单地:
// get gridControl object and pass it for modification
var gridControl = L.mapbox.gridControl(gridLayer, {follow:true});
// modify the prototype
gridControl.__proto__._onPopupClose = function() {
this._currentContent = null;
this._lastContent = null;
this._pinned = false;
};