|
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 = /,?([^,\n]*?)\[[\s\t]*?(min|max)-(width|height)[\s\t]*?[~$\^]?=[\s\t]*?"([^"]*?)"[\s\t]*?]([^\n\s\{]*?)/mgi;
|
|
242 | 257 | }
|
243 | 258 | }
|
244 | 259 | }
|
| 260 | + executeQueries(); |
245 | 261 | };
|
246 | 262 |
|
247 | 263 | /**
|
|
320 | 336 | document.addEventListener('DOMContentLoaded', callback, false);
|
321 | 337 | }
|
322 | 338 | /* Safari, iCab, Konqueror */
|
323 |
| - if (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) { |
| 339 | + else if (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) { |
324 | 340 | var DOMLoadTimer = setInterval(function () {
|
325 | 341 | if (/loaded|complete/i.test(document.readyState)) {
|
326 | 342 | callback();
|
|
329 | 345 | }, 10);
|
330 | 346 | }
|
331 | 347 | /* Other web browsers */
|
332 |
| - window.onload = callback; |
| 348 | + else window.onload = callback; |
333 | 349 | };
|
334 | 350 |
|
335 | 351 | if (window.addEventListener) {
|
|
0 commit comments