目前没有直接的方法可以查询 ImageMapster 中特定区域的活动渲染选项。据推测,您在某个时候分配了它们,所以我会在插件之外跟踪它们。例如,抽象您用来分配红色或蓝色状态的代码。
var stateData = {}, image = $('#my-image')
// color: the color to render the area
// selected: true or false
function setState(selected, key, color) {
stateData[key] = fillColor;
image.mapster('set',selected,key, {fillColor: color } );
}
然后使用该功能选择/取消选择区域,而不是直接调用 mapster。现在当你去保存数据时,你可以从你的参考中查找颜色:
var activeKeys = image.mapster('get'); // returns a comma-separated list
var activeStates = [];
for(var key in activeKeys.split(',')) {
activeStates.push({
state: key,
color: stateData[key]
});
}
// now activeStates is an array of objects, one for each selected area,
// containing the area key and the color. Save this info to your db.
.. 或类似的东西。