|
421 | 421 | self.elemEnter(dataTypeToElementMapping[type][id]); |
422 | 422 | } else if (type === 'legend-elem' || type === 'legend-label') { |
423 | 423 | 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]); |
429 | 426 | } |
430 | 427 | }, self.MouseOverFilteringTO); |
431 | 428 | }); |
|
468 | 465 | self.elemOut(dataTypeToElementMapping[type][id]); |
469 | 466 | } else if (type === 'legend-elem' || type === 'legend-label') { |
470 | 467 | 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]); |
476 | 470 | } |
477 | 471 | }); |
478 | 472 |
|
|
484 | 478 | var id = $elem.attr('data-id'); |
485 | 479 | var type = $elem.attr('data-type'); |
486 | 480 |
|
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]); |
493 | 483 | } else if (type === 'legend-elem' || type === 'legend-label') { |
494 | 484 | var legendIndex = $elem.attr('data-legend-id'); |
495 | 485 | var legendType = $elem.attr('data-legend-type'); |
|
2047 | 2037 |
|
2048 | 2038 | /* |
2049 | 2039 | * Set the behaviour when mouse enters element ("mouseover" event) |
| 2040 | + * It may be an area, a plot, a link or a legend element |
2050 | 2041 | * @param elem the map element |
2051 | 2042 | */ |
2052 | 2043 | elemEnter: function (elem) { |
|
2064 | 2055 | } |
2065 | 2056 |
|
2066 | 2057 | /* Handle tooltip init */ |
2067 | | - if (elem.options.tooltip !== undefined) { |
| 2058 | + if (elem.options && elem.options.tooltip !== undefined) { |
2068 | 2059 | var content = ''; |
2069 | 2060 | // Reset classes |
2070 | 2061 | self.$tooltip.removeClass().addClass(self.options.map.tooltip.cssClass); |
|
2132 | 2123 |
|
2133 | 2124 | /* |
2134 | 2125 | * Set the behaviour when mouse leaves element ("mouseout" event) |
| 2126 | + * It may be an area, a plot, a link or a legend element |
2135 | 2127 | * @param elem the map element |
2136 | 2128 | */ |
2137 | 2129 | elemOut: function (elem) { |
|
2149 | 2141 | } |
2150 | 2142 |
|
2151 | 2143 | /* reset tooltip */ |
2152 | | - if (elem.options.tooltip !== undefined) { |
| 2144 | + if (elem.options && elem.options.tooltip !== undefined) { |
2153 | 2145 | self.$tooltip.css({ |
2154 | 2146 | 'display': 'none', |
2155 | 2147 | 'top': -1000, |
|
2165 | 2157 |
|
2166 | 2158 | /* |
2167 | 2159 | * 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) |
2168 | 2161 | * @param elem the map element |
2169 | 2162 | */ |
2170 | 2163 | elemClick: function (elem) { |
|
0 commit comments