使用Ctrl +单击JS Map进行选择

时间:2013-10-08 20:16:17

标签: javascript jquery javascript-events

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

我试图将MoouseOver和MouseOut事件更改为event.CtrlKey,直到脚本为止:

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")

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

1 个答案:

答案 0 :(得分: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代码中向数组中添加/删除所选区域。