Skip to content

Commit 23419cc

Browse files
committed
handleClickOnLegendElem take into account other legends
1 parent d3d0df2 commit 23419cc

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

js/jquery.mapael.js

+21-7
Original file line numberDiff line numberDiff line change
@@ -1113,6 +1113,12 @@
11131113
}
11141114

11151115
$.each(elems, function(id) {
1116+
// Retreive stored data of element
1117+
// 'hidden-by' contains the list of legendIndex that is hiding this element
1118+
var hiddenBy = elems[id].mapElem.data('hidden-by');
1119+
// Set to empty object if undefined
1120+
if (typeof hiddenBy == "undefined") hiddenBy = {};
1121+
11161122
if ($.isArray(elems[id].value)) {
11171123
elemValue = elems[id].value[legendIndex];
11181124
} else {
@@ -1125,7 +1131,8 @@
11251131
&& (typeof sliceOptions.max == "undefined" || elemValue <= sliceOptions.max))
11261132
) {
11271133
(function(id) {
1128-
if (hidden === '0') {
1134+
if (hidden === '0') { // we want to hide this element
1135+
hiddenBy[legendIndex] = true; // add legendIndex to the data object for later use
11291136
elems[id].mapElem.animate({"opacity":legendOptions.hideElemsOnClick.opacity}, legendOptions.hideElemsOnClick.animDuration, "linear", function() {
11301137
if (legendOptions.hideElemsOnClick.opacity === 0) elems[id].mapElem.hide();
11311138
});
@@ -1134,14 +1141,21 @@
11341141
if (legendOptions.hideElemsOnClick.opacity === 0) elems[id].textElem.hide();
11351142
});
11361143
}
1137-
} else {
1138-
if (legendOptions.hideElemsOnClick.opacity === 0) {
1139-
elems[id].mapElem.show();
1140-
if (elems[id].textElem) elems[id].textElem.show();
1144+
} else { // We want to show this element
1145+
delete hiddenBy[legendIndex]; // Remove this legendIndex from object
1146+
// Check if another legendIndex is defined
1147+
// We will show this element only if no legend is no longer hiding it
1148+
if ($.isEmptyObject(hiddenBy)) {
1149+
if (legendOptions.hideElemsOnClick.opacity === 0) {
1150+
elems[id].mapElem.show();
1151+
if (elems[id].textElem) elems[id].textElem.show();
1152+
}
1153+
elems[id].mapElem.animate({"opacity":typeof elems[id].mapElem.originalAttrs.opacity != "undefined" ? elems[id].mapElem.originalAttrs.opacity : 1}, legendOptions.hideElemsOnClick.animDuration);
1154+
if (elems[id].textElem) elems[id].textElem.animate({"opacity":typeof elems[id].textElem.originalAttrs.opacity != "undefined" ? elems[id].textElem.originalAttrs.opacity : 1}, legendOptions.hideElemsOnClick.animDuration);
11411155
}
1142-
elems[id].mapElem.animate({"opacity":typeof elems[id].mapElem.originalAttrs.opacity != "undefined" ? elems[id].mapElem.originalAttrs.opacity : 1}, legendOptions.hideElemsOnClick.animDuration);
1143-
if (elems[id].textElem) elems[id].textElem.animate({"opacity":typeof elems[id].textElem.originalAttrs.opacity != "undefined" ? elems[id].textElem.originalAttrs.opacity : 1}, legendOptions.hideElemsOnClick.animDuration);
11441156
}
1157+
// Update elem data with new values
1158+
elems[id].mapElem.data('hidden-by', hiddenBy);
11451159
})(id);
11461160
}
11471161
});

0 commit comments

Comments
 (0)