Make Icon/DivIcon reuse not try reuse the wrong dom element type.
This commit is contained in:
parent
7f2eff363b
commit
fa45913505
@ -47,7 +47,7 @@ describe("Marker", function () {
|
||||
|
||||
marker.setIcon(new L.Icon({iconUrl: 'icon1.png' }));
|
||||
|
||||
expect(marker._icon.afterIcon.src).to.contain('icon2.png');
|
||||
expect(marker._icon.src).to.contain('icon1.png');
|
||||
});
|
||||
|
||||
it("changes an image to a DivIcon", function () {
|
||||
@ -56,7 +56,7 @@ describe("Marker", function () {
|
||||
|
||||
marker.setIcon(new L.DivIcon({html: 'Inner1Text' }));
|
||||
|
||||
expect(marker._icon.afterIcon.innerHTML).to.contain('Inner1Text');
|
||||
expect(marker._icon.innerHTML).to.contain('Inner1Text');
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -17,7 +17,7 @@ L.DivIcon = L.Icon.extend({
|
||||
},
|
||||
|
||||
createIcon: function (oldIcon) {
|
||||
var div = oldIcon || document.createElement('div'),
|
||||
var div = (oldIcon && oldIcon.tagName == 'DIV') ? oldIcon : document.createElement('div'),
|
||||
options = this.options;
|
||||
|
||||
if (options.html !== false) {
|
||||
|
@ -41,7 +41,7 @@ L.Icon = L.Class.extend({
|
||||
}
|
||||
|
||||
var img;
|
||||
if (!oldIcon) {
|
||||
if (!oldIcon || oldIcon.tagName != 'IMG') {
|
||||
img = this._createImg(src);
|
||||
} else {
|
||||
img = this._createImg(src, oldIcon);
|
||||
|
@ -109,6 +109,18 @@ L.Marker = L.Class.extend({
|
||||
this._icon = options.icon.createIcon();
|
||||
} else {
|
||||
this._icon = this.options.icon.createIcon(this._icon);
|
||||
|
||||
//If the icon isn't being reused
|
||||
if (reuseIcon !== this._icon) {
|
||||
//Temporarily reset this._icon to be the one we want to remove so _removeIcon will remove it
|
||||
var newIcon = this._icon;
|
||||
this._icon = reuseIcon;
|
||||
|
||||
this._removeIcon();
|
||||
|
||||
reuseIcon = false;
|
||||
this._icon = newIcon;
|
||||
}
|
||||
}
|
||||
|
||||
if (options.title) {
|
||||
|
Loading…
Reference in New Issue
Block a user