无法在 bing 地图中的图钉描述中的 onclick 中发送属性
Cant send attribute in onclick in description of pushpin in bing maps
我有一张带有 bing 地图的地图和一些具有 html 描述的图钉。我想当我点击这个描述(它是一个列表)时,调用一个外部函数。此函数用于创建 HTML 说明:
_getDescription = function (actions) {
var description = "<div><ul class='action'>";
actions.forEach(function (action) {
description += '<li onclick="showOrderModal(action)"><strong>' + action.address.info.code + "</strong><br><span>" + action.address.info.address_for_pushpin + "</span>"
})
description += "</li></ul></div>"
return description;
}
有了这个我设置html我的描述内容:
$scope.pinInfobox.setOptions({
// title: e.target.Title,
htmlContent: e.target.Description,
visible:true,
offset: new Microsoft.Maps.Point(0,25)
});
我有 showOrderModal()
功能,当我点击列表中的一个项目时,它显示:
"Uncaught ReferenceError: action is not defined"
您看到的错误是有道理的。您有一个名称为 属性 的 HTML 字符串,但 属性 没有实际的 link。在这个字符串中:
'<li onclick="showOrderModal(action)"><strong>'
action 只不过是一个字符串。当有人点击列表项时,操作值是未定义的,因为没有本地值。您需要做的是包含一些基本信息,这些信息可用于检索您想要的操作信息。也许将动作数组存储在某处并将动作的索引传递到每个列表项的 showOrderModal 中。例如:
var currentActions;
_getDescription = function (actions) {
currentActions = actions;
var description = "<div><ul class='action'>";
actions.forEach(function (action, idx) {
description += '<li onclick="showOrderModal('+ idx + ')"><strong>' + action.address.info.code + "</strong><br><span>" + action.address.info.address_for_pushpin + "</span>"
})
description += "</li></ul></div>"
return description;
}
function showOrderModal(idx){
var action = currentActions[idx];
//Do what ever you were doing before with the action.
}
我有一张带有 bing 地图的地图和一些具有 html 描述的图钉。我想当我点击这个描述(它是一个列表)时,调用一个外部函数。此函数用于创建 HTML 说明:
_getDescription = function (actions) {
var description = "<div><ul class='action'>";
actions.forEach(function (action) {
description += '<li onclick="showOrderModal(action)"><strong>' + action.address.info.code + "</strong><br><span>" + action.address.info.address_for_pushpin + "</span>"
})
description += "</li></ul></div>"
return description;
}
有了这个我设置html我的描述内容:
$scope.pinInfobox.setOptions({
// title: e.target.Title,
htmlContent: e.target.Description,
visible:true,
offset: new Microsoft.Maps.Point(0,25)
});
我有 showOrderModal()
功能,当我点击列表中的一个项目时,它显示:
"Uncaught ReferenceError: action is not defined"
您看到的错误是有道理的。您有一个名称为 属性 的 HTML 字符串,但 属性 没有实际的 link。在这个字符串中:
'<li onclick="showOrderModal(action)"><strong>'
action 只不过是一个字符串。当有人点击列表项时,操作值是未定义的,因为没有本地值。您需要做的是包含一些基本信息,这些信息可用于检索您想要的操作信息。也许将动作数组存储在某处并将动作的索引传递到每个列表项的 showOrderModal 中。例如:
var currentActions;
_getDescription = function (actions) {
currentActions = actions;
var description = "<div><ul class='action'>";
actions.forEach(function (action, idx) {
description += '<li onclick="showOrderModal('+ idx + ')"><strong>' + action.address.info.code + "</strong><br><span>" + action.address.info.address_for_pushpin + "</span>"
})
description += "</li></ul></div>"
return description;
}
function showOrderModal(idx){
var action = currentActions[idx];
//Do what ever you were doing before with the action.
}