2013-10-08 38 views
1

我正在根据点击地图制作一组邮寄地址选择。我找到了一个随时可用的解决方案。这是俄罗斯地图,所有地区已标记。区域更改MouseOver事件的颜色,这很好。现在我需要让这些区域保持Ctrl + Click状态,我似乎无法弄清楚这一点。这是http://jsfiddle.net/LxtMY/8/用Ctrl +点击选择JS地图

我试图改变MoouseOver及移出事件event.CtrlKey在脚本的非常BUTTOM:

F(Q).trigger("alwaysOn.maphilight").find("area[coords]").bind("mouseover.maphilight",X).bind("mouseout.maphilight",function(Z){L(T)}); 
U.before(T); 
U.addClass("maphilighted") 

但没有产生结果。也许我在编辑一个错误的东西。

回答

2

每个area标签必须有一个唯一的ID:

<area id="murmansk" ... /> 

然后添加下面的JavaScript代码:

$('area').click(function(e) { 
    e.preventDefault(); 
    var id = e.currentTarget.id; 
    var data = $('#' + id).mouseout().data('maphilight') || {}; 
    data.alwaysOn = !data.alwaysOn; 
    $('#' + id).data('maphilight', data).trigger('alwaysOn.maphilight'); 
}); 

如果你要去你可以使用样式类代替area作为选择您的网页上有多个地图。

这里找到另一个例子:

如果需要选择的省份/国家评估,那么你可以使用jQuery maphilight(如果他们为您提供这样的方法),或添加/在JavaScript代码中将选定区域移除到数组中。