jQuery Lazy Load XT - 强制图像加载自定义事件

时间:2015-07-21 20:36:46

标签: javascript jquery lazy-loading jquery-lazyload

每次从没有文档的jQuery Carousel插件调用switchSlide()方法时,我都会触发自定义事件switchSlideEvent

我正在使用Lazy Load XT(https://github.com/ressio/lazy-load-xt)来延迟加载图片,但是,插件只会加载以下事件的图片load orientationchange resize {{1 }}

Lazy Load XT初始化如下:

scroll

我尝试了以下解决方案,但没有取得任何成功:

  1. $.extend($.lazyLoadXT, { selector: 'img[data-original]', srcAttr: 'data-original', edgeY: 200, updateEvent: 'load orientationchange resize scroll switchSlideEvent' }); 传递给Lazy Load XT switchSlideEvent选项(如上所示)
  2. 手动重新初始化Lazy Load XT updateEvent,如下所示:
  3. 我正在获取console.log事件,但轮播图像"滑动"在我滚动页面之前,我没有加载到视图中。

    .on('switchSlideEvent')

    问题

    $(document).ready(function(){ $(document).on('switchSlideEvent', function(){ console.log("custom event fired"); $(window).lazyLoadXT(); }); }); 触发时,如何强制Lazy Load XT加载新图像?

    非常感谢任何帮助。

    谢谢!

1 个答案:

答案 0 :(得分:1)

在carousel插件的switchSlide()方法中,有一个animate方法,其中包含complete回调函数。我在$.event.trigger("switchSlideAnimateEvent")回调函数中添加了另一个事件complete,并调整了我的初始化代码,如下所示:

$.extend($.lazyLoadXT, {
selector: 'img[data-original]',
srcAttr: 'data-original',
edgeY: 200,
updateEvent: 'load orientationchange resize scroll switchSlideEvent switchSlideAnimateEvent'
});

我完全删除了$(document).on(switchSlideEvent)处理程序,因为它没有必要,而且图像现在已正确加载。

干杯。