Skip to content

Commit cf1c207

Browse files
authored
Fix hover legend (neveldo#347)
* Fix legend hovering * onClick use dataTypeToElementMapping
1 parent 6bbc79b commit cf1c207

File tree

1 file changed

+11
-18
lines changed

1 file changed

+11
-18
lines changed

js/jquery.mapael.js

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -421,11 +421,8 @@
421421
self.elemEnter(dataTypeToElementMapping[type][id]);
422422
} else if (type === 'legend-elem' || type === 'legend-label') {
423423
var legendIndex = $elem.attr('data-legend-id');
424-
if (self.legends[legendIndex] !== undefined &&
425-
self.legends[legendIndex].elems[id] !== undefined)
426-
{
427-
self.elemEnter(self.legends[legendIndex].elems[id]);
428-
}
424+
var legendType = $elem.attr('data-legend-type');
425+
self.elemEnter(self.legends[legendType][legendIndex].elems[id]);
429426
}
430427
}, self.MouseOverFilteringTO);
431428
});
@@ -468,11 +465,8 @@
468465
self.elemOut(dataTypeToElementMapping[type][id]);
469466
} else if (type === 'legend-elem' || type === 'legend-label') {
470467
var legendIndex = $elem.attr('data-legend-id');
471-
if (self.legends[legendIndex] !== undefined &&
472-
self.legends[legendIndex].elems[id] !== undefined)
473-
{
474-
self.elemOut(self.legends[legendIndex].elems[id]);
475-
}
468+
var legendType = $elem.attr('data-legend-type');
469+
self.elemOut(self.legends[legendType][legendIndex].elems[id]);
476470
}
477471
});
478472

@@ -484,12 +478,8 @@
484478
var id = $elem.attr('data-id');
485479
var type = $elem.attr('data-type');
486480

487-
if (type === 'area' || type === 'area-text') {
488-
self.elemClick(self.areas[id]);
489-
} else if (type === 'plot' || type === 'plot-text') {
490-
self.elemClick(self.plots[id]);
491-
} else if (type === 'link' || type === 'link-text') {
492-
self.elemClick(self.links[id]);
481+
if (dataTypeToElementMapping[type] !== undefined) {
482+
self.elemClick(dataTypeToElementMapping[type][id]);
493483
} else if (type === 'legend-elem' || type === 'legend-label') {
494484
var legendIndex = $elem.attr('data-legend-id');
495485
var legendType = $elem.attr('data-legend-type');
@@ -2047,6 +2037,7 @@
20472037

20482038
/*
20492039
* Set the behaviour when mouse enters element ("mouseover" event)
2040+
* It may be an area, a plot, a link or a legend element
20502041
* @param elem the map element
20512042
*/
20522043
elemEnter: function (elem) {
@@ -2064,7 +2055,7 @@
20642055
}
20652056

20662057
/* Handle tooltip init */
2067-
if (elem.options.tooltip !== undefined) {
2058+
if (elem.options && elem.options.tooltip !== undefined) {
20682059
var content = '';
20692060
// Reset classes
20702061
self.$tooltip.removeClass().addClass(self.options.map.tooltip.cssClass);
@@ -2132,6 +2123,7 @@
21322123

21332124
/*
21342125
* Set the behaviour when mouse leaves element ("mouseout" event)
2126+
* It may be an area, a plot, a link or a legend element
21352127
* @param elem the map element
21362128
*/
21372129
elemOut: function (elem) {
@@ -2149,7 +2141,7 @@
21492141
}
21502142

21512143
/* reset tooltip */
2152-
if (elem.options.tooltip !== undefined) {
2144+
if (elem.options && elem.options.tooltip !== undefined) {
21532145
self.$tooltip.css({
21542146
'display': 'none',
21552147
'top': -1000,
@@ -2165,6 +2157,7 @@
21652157

21662158
/*
21672159
* Set the behaviour when mouse clicks element ("click" event)
2160+
* It may be an area, a plot or a link (but not a legend element which has its own function)
21682161
* @param elem the map element
21692162
*/
21702163
elemClick: function (elem) {

0 commit comments

Comments
 (0)