diff --git a/src/layer/DivOverlay.js b/src/layer/DivOverlay.js index efd76f1bba2..13704d9439c 100644 --- a/src/layer/DivOverlay.js +++ b/src/layer/DivOverlay.js @@ -175,6 +175,10 @@ export var DivOverlay = Layer.extend({ this.fire('contentupdate'); }, + _hasContentFor: function (layer) { + return typeof this._content !== 'function' || this._content(layer || this); + }, + _updatePosition: function () { if (!this._map) { return; } diff --git a/src/layer/Popup.js b/src/layer/Popup.js index 4eed622d1ba..abe132649a5 100644 --- a/src/layer/Popup.js +++ b/src/layer/Popup.js @@ -434,7 +434,7 @@ Layer.include({ latlng = layer.getCenter ? layer.getCenter() : layer.getLatLng(); } - if (this._popup && this._map) { + if (this._popup && this._map && this._popup._hasContentFor(layer)) { // set popup source to this layer this._popup._source = layer; diff --git a/src/layer/Tooltip.js b/src/layer/Tooltip.js index 5eb83f9bcbb..1aa876ba1bf 100644 --- a/src/layer/Tooltip.js +++ b/src/layer/Tooltip.js @@ -328,7 +328,7 @@ Layer.include({ latlng = layer.getCenter ? layer.getCenter() : layer.getLatLng(); } - if (this._tooltip && this._map) { + if (this._tooltip && this._map && this._tooltip._hasContentFor(layer)) { // set tooltip source to this layer this._tooltip._source = layer;