|
9 | 9 |
|
10 | 10 | options.selector += ',picture';
|
11 | 11 |
|
| 12 | + function parsePicture($el) { |
| 13 | + var srcAttr = $el.lazyLoadXT.srcAttrS, |
| 14 | + isFuncSrcAttr = $.isFunction(srcAttr), |
| 15 | + $img = $el.children('img'), |
| 16 | + src = isFuncSrcAttr ? srcAttr($img) : $img.attr(srcAttr); |
| 17 | + |
| 18 | + if (matchMedia) { |
| 19 | + $el |
| 20 | + .children('br') |
| 21 | + .each(function () { |
| 22 | + var $child = $(this), |
| 23 | + source = isFuncSrcAttr ? srcAttr($child) : $child.attr(srcAttr), |
| 24 | + media = $child.attr('media'); |
| 25 | + |
| 26 | + if (source && (!media || matchMedia(media).matches)) { |
| 27 | + src = source; |
| 28 | + } |
| 29 | + }); |
| 30 | + } |
| 31 | + |
| 32 | + return src; |
| 33 | + } |
| 34 | + |
12 | 35 | $(document)
|
13 | 36 | // remove default behaviour for inner <img> tag
|
14 | 37 | .on('lazyinit', 'img', function (e, $el) {
|
|
37 | 60 | return;
|
38 | 61 | }
|
39 | 62 |
|
40 |
| - var srcAttr = $el.lazyLoadXT.srcAttr, |
41 |
| - isFuncSrcAttr = $.isFunction(srcAttr), |
42 |
| - $img = $el.children('img'), |
43 |
| - src = isFuncSrcAttr ? srcAttr($img) : $img.attr(srcAttr); |
44 |
| - |
45 |
| - if (src) { |
46 |
| - $img.attr('src', src); |
47 |
| - } |
48 |
| - |
49 |
| - if (matchMedia) { |
50 |
| - $el |
51 |
| - .children('br') |
52 |
| - .each(function () { |
53 |
| - var $child = $(this), |
54 |
| - src = isFuncSrcAttr ? srcAttr($child) : $child.attr(srcAttr), |
55 |
| - media = $child.attr('media'); |
56 |
| - |
57 |
| - if (src && (!media || matchMedia(media).matches)) { |
58 |
| - $img.attr('src', src); |
59 |
| - } |
60 |
| - }); |
61 |
| - } |
| 63 | + var elOptions = $el.lazyLoadXT; |
| 64 | + elOptions.srcAttrS = elOptions.srcAttr; |
| 65 | + elOptions.srcAttr = parsePicture; |
62 | 66 | });
|
63 | 67 |
|
64 | 68 | })(window.jQuery || window.Zepto, window, document);
|
0 commit comments