Skip to content

Commit 6f214c0

Browse files
committed
Fix support of lazyload/lazyerror events in picture addon
1 parent dd2c1b8 commit 6f214c0

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

src/jquery.lazyloadxt.picture.js

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,29 @@
99

1010
options.selector += ',picture';
1111

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+
1235
$(document)
1336
// remove default behaviour for inner <img> tag
1437
.on('lazyinit', 'img', function (e, $el) {
@@ -37,28 +60,9 @@
3760
return;
3861
}
3962

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;
6266
});
6367

6468
})(window.jQuery || window.Zepto, window, document);

0 commit comments

Comments
 (0)