|
159 | 159 | * @param {String} property width|height
|
160 | 160 | * @param {String} value
|
161 | 161 | */
|
| 162 | + var allQueries = {}; |
162 | 163 | function queueQuery(selector, mode, property, value) {
|
| 164 | + if (typeof(allQueries[mode]) == 'undefined') allQueries[mode] = {}; |
| 165 | + if (typeof(allQueries[mode][property]) == 'undefined') allQueries[mode][property] = {}; |
| 166 | + if (typeof(allQueries[mode][property][value]) == 'undefined') allQueries[mode][property][value] = selector; |
| 167 | + else allQueries[mode][property][value] += ','+selector; |
| 168 | + } |
| 169 | + |
| 170 | + function executeQueries() { |
163 | 171 | var query;
|
164 | 172 | if (document.querySelectorAll) query = document.querySelectorAll.bind(document);
|
165 | 173 | if (!query && 'undefined' !== typeof $$) query = $$;
|
|
169 | 177 | throw 'No document.querySelectorAll, jQuery or Mootools\'s $$ found.';
|
170 | 178 | }
|
171 | 179 |
|
172 |
| - var elements = query(selector); |
173 |
| - for (var i = 0, j = elements.length; i < j; i++) { |
174 |
| - setupElement(elements[i], { |
175 |
| - mode: mode, |
176 |
| - property: property, |
177 |
| - value: value |
178 |
| - }); |
| 180 | + for (var mode in allQueries) if (allQueries.hasOwnProperty(mode)) { |
| 181 | + for (var property in allQueries[mode]) if (allQueries[mode].hasOwnProperty(property)) { |
| 182 | + for (var value in allQueries[mode][property]) if (allQueries[mode][property].hasOwnProperty(value)) { |
| 183 | + var elements = query(allQueries[mode][property][value]); |
| 184 | + for (var i = 0, j = elements.length; i < j; i++) { |
| 185 | + setupElement(elements[i], { |
| 186 | + mode: mode, |
| 187 | + property: property, |
| 188 | + value: value |
| 189 | + }); |
| 190 | + } |
| 191 | + } |
| 192 | + } |
179 | 193 | }
|
| 194 | + |
180 | 195 | }
|
181 | 196 |
|
182 | 197 | var regex = /,?[\s\t]*([^,\n]*?)((?:\[[\s\t]*?(?:min|max)-(?:width|height)[\s\t]*?[~$\^]?=[\s\t]*?"[^"]*?"[\s\t]*?])+)([^,\n\s\{]*)/mgi;
|
|
244 | 259 | }
|
245 | 260 | }
|
246 | 261 | }
|
| 262 | + executeQueries(); |
247 | 263 | };
|
248 | 264 |
|
249 | 265 | /**
|
|
322 | 338 | document.addEventListener('DOMContentLoaded', callback, false);
|
323 | 339 | }
|
324 | 340 | /* Safari, iCab, Konqueror */
|
325 |
| - if (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) { |
| 341 | + else if (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) { |
326 | 342 | var DOMLoadTimer = setInterval(function () {
|
327 | 343 | if (/loaded|complete/i.test(document.readyState)) {
|
328 | 344 | callback();
|
|
331 | 347 | }, 10);
|
332 | 348 | }
|
333 | 349 | /* Other web browsers */
|
334 |
| - window.onload = callback; |
| 350 | + else window.onload = callback; |
335 | 351 | };
|
336 | 352 |
|
337 | 353 | if (window.addEventListener) {
|
|
0 commit comments