我的问题是我想根据markerSet数组中的名称加载不同的模态,但是现在if / else每次都返回相同的模态。
请参阅下面的JS中的声明。 name: "Tulsa"
标记应该打开#tulsa-modal
,其他标记应该打开#band-modal
。有什么想法吗?
var markerSet = [
{latLng: [36.13, -95.93], name: "Tulsa"},
{latLng: [38.62, -90.19], name: "St. Louis"},
{latLng: [44.98, -93.26], name: "Minneapolis"}
];
$(function(){
$('#usa').vectorMap({
map: 'us_aea_en',
// the rest cut for brevity..
},
markers: markerSet,
onMarkerClick: function(event, index){
if($.inArray("Tulsa", markerSet) == -1) {
$('#tulsa-modal').modal();
}
else {
$('#band-modal').modal();
}
}
});
});
答案 0 :(得分:1)
您正在检查是否" tulsa"存在于markerSet数组中 - 这将始终返回true,因为该值始终存在于数组中,因此第一个模式将始终打开。
您需要为您单击的标记传递某种标识符(例如,您的onMarker点击可能会返回该标记的名称)并检查该值并显示相应的模态。
我不熟悉您正在使用的库,但它可能类似于以下
var markerSet = [
{latLng: [36.13, -95.93], name: "Tulsa"},
{latLng: [38.62, -90.19], name: "St. Louis"},
{latLng: [44.98, -93.26], name: "Minneapolis"}
];
$(function(){
$('#usa').vectorMap({
map: 'us_aea_en',
// the rest cut for brevity..
},
markers: markerSet,
onMarkerClick: function(event, index){
//check the name property of the clicked marker object
if(markerSet[index].name == "Tulsa") {
$('#tulsa-modal').modal();
}
else {
$('#band-modal').modal();
}
}
});
});