2013-10-08 68 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代碼中將選定區域移除到數組中。