|
1113 | 1113 | }
|
1114 | 1114 |
|
1115 | 1115 | $.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 | + |
1116 | 1122 | if ($.isArray(elems[id].value)) {
|
1117 | 1123 | elemValue = elems[id].value[legendIndex];
|
1118 | 1124 | } else {
|
|
1125 | 1131 | && (typeof sliceOptions.max == "undefined" || elemValue <= sliceOptions.max))
|
1126 | 1132 | ) {
|
1127 | 1133 | (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 |
1129 | 1136 | elems[id].mapElem.animate({"opacity":legendOptions.hideElemsOnClick.opacity}, legendOptions.hideElemsOnClick.animDuration, "linear", function() {
|
1130 | 1137 | if (legendOptions.hideElemsOnClick.opacity === 0) elems[id].mapElem.hide();
|
1131 | 1138 | });
|
|
1134 | 1141 | if (legendOptions.hideElemsOnClick.opacity === 0) elems[id].textElem.hide();
|
1135 | 1142 | });
|
1136 | 1143 | }
|
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); |
1141 | 1155 | }
|
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); |
1144 | 1156 | }
|
| 1157 | + // Update elem data with new values |
| 1158 | + elems[id].mapElem.data('hidden-by', hiddenBy); |
1145 | 1159 | })(id);
|
1146 | 1160 | }
|
1147 | 1161 | });
|
|
0 commit comments