在标记弹出窗口上显示自定义内容的功能
Function to show custom content on marker popup
在我能够在 PopUp 中显示 "icons.js" 中 "pname" 的内容之前,我设法使用此功能来显示它。现在我又添加了两个字段 "dropname" 和 "dropicon",我想在 "pname" 下显示。但是我的代码有问题。我不知道是语法错误还是什么,我知道我在那个函数中遗漏了一些东西。
任何人都可以帮助我吗?
我使用该功能的完整代码在这里:
http://plnkr.co/edit/ZiRgOuodGYyr0Rsl6PZk?p=preview
function showResourcesByName(name) {
for (var i = 0; i < markers.resources.length; i++) {
var resName = markers.resources[i].name;
if (resName == name) {
var resIcon = icons.resources[i].icon;
var resSize = icons.resources[i].size;
var resPname = icons.resources[i].pname;
var resDropName = icons.resources[i].dropname;
var resDropIcon = icons.resources[i].dropicon;
alert (resDropName.lenght);
var popupContent = '<span class="markername">'+resPname+'</span><span class="drop">Drops:</span><div class="dropimgs">';
var popupContentDrops;
for (var dropindex = 0; dropindex < icons.resources[i].dropname.lenght; dropindex++) {
popupContentDrops += '<img src="'+resDropIcon[dropindex]+'"><span class="dropimgtext">'+resDropName[dropindex]+'</span>';
}
popupContent += popupContentDrops + '</div>';
var customIcon = L.icon({
iconUrl: resIcon,
iconSize: resSize, // size of the icon
iconAnchor: [resSize[0]/2, resSize[1]/2], // point of the icon which will correspond to marker's location
popupAnchor: [2, -resSize[1]/2] // point from which the popup should open relative to the iconAnchor
});
for (var j = 0; j < markers.resources[i].coords.length; j++) {
var x = markers.resources[i].coords[j].x;
var y = markers.resources[i].coords[j].y;
marker = L.marker([y, x], {icon: customIcon});
marker.addTo(map).bindPopup(popupContent);
$(marker._icon).addClass(name)
}
}
}
}
您有几个错误:
- 您应该将
lenght
替换为 length
(多个位置)
- 你的
icons.resources
对象中没有dropname
属性,但是有name
属性;也许您应该将其更改为 icons.resources[i].name
(多个位置)
- 你的
icons.resources
对象中没有dropicon
属性,但是有icon
属性;也许您应该将其更改为 icons.resources[i].icon
(可能是多个地方)
在我能够在 PopUp 中显示 "icons.js" 中 "pname" 的内容之前,我设法使用此功能来显示它。现在我又添加了两个字段 "dropname" 和 "dropicon",我想在 "pname" 下显示。但是我的代码有问题。我不知道是语法错误还是什么,我知道我在那个函数中遗漏了一些东西。 任何人都可以帮助我吗? 我使用该功能的完整代码在这里:
http://plnkr.co/edit/ZiRgOuodGYyr0Rsl6PZk?p=preview
function showResourcesByName(name) {
for (var i = 0; i < markers.resources.length; i++) {
var resName = markers.resources[i].name;
if (resName == name) {
var resIcon = icons.resources[i].icon;
var resSize = icons.resources[i].size;
var resPname = icons.resources[i].pname;
var resDropName = icons.resources[i].dropname;
var resDropIcon = icons.resources[i].dropicon;
alert (resDropName.lenght);
var popupContent = '<span class="markername">'+resPname+'</span><span class="drop">Drops:</span><div class="dropimgs">';
var popupContentDrops;
for (var dropindex = 0; dropindex < icons.resources[i].dropname.lenght; dropindex++) {
popupContentDrops += '<img src="'+resDropIcon[dropindex]+'"><span class="dropimgtext">'+resDropName[dropindex]+'</span>';
}
popupContent += popupContentDrops + '</div>';
var customIcon = L.icon({
iconUrl: resIcon,
iconSize: resSize, // size of the icon
iconAnchor: [resSize[0]/2, resSize[1]/2], // point of the icon which will correspond to marker's location
popupAnchor: [2, -resSize[1]/2] // point from which the popup should open relative to the iconAnchor
});
for (var j = 0; j < markers.resources[i].coords.length; j++) {
var x = markers.resources[i].coords[j].x;
var y = markers.resources[i].coords[j].y;
marker = L.marker([y, x], {icon: customIcon});
marker.addTo(map).bindPopup(popupContent);
$(marker._icon).addClass(name)
}
}
}
}
您有几个错误:
- 您应该将
lenght
替换为length
(多个位置) - 你的
icons.resources
对象中没有dropname
属性,但是有name
属性;也许您应该将其更改为icons.resources[i].name
(多个位置) - 你的
icons.resources
对象中没有dropicon
属性,但是有icon
属性;也许您应该将其更改为icons.resources[i].icon
(可能是多个地方)