MUI - 解決動態列表頁圖片懶加載再次加載不成功的bug

首先描述一下功能

實現列表頁動態加載
經過官方提供的"下拉刷新和上拉刷新"及"圖片懶加載"示例實現。javascript

http://www.cnblogs.com/phillyx/java

而後說一下bug

  1. 首次加載時圖片能夠獲取成功,
  2. 再次加載失敗,經過chrome調試發現img 的 data-lazyload 屬性沒改變
  3. 調試的時候發現了bug
$.fn.imageLazyload = function(options) {
            var lazyloadApis = [];
            this.each(function() {
                var self = this;
                var lazyloadApi = null;
                if (self === document || self === window) {
                    self = document.body;
                }
 //對,bug就在這,斷定時若是body已有該屬性,就不在加載了,總體的代碼沒看明白,註釋太少了啊
                var id = self.getAttribute('data-imageLazyload');
                if (!id) {
                    id = ++$.uuid;
                    $.data[id] = lazyloadApi = new ImageLazyload(self, options);
                    self.setAttribute('data-imageLazyload', id);
                } else {
                    lazyloadApi = $.data[id];
                }
                lazyloadApis.push(lazyloadApi);
            });
            return lazyloadApis.length === 1 ? lazyloadApis[0] : lazyloadApis;
        }
  1. 問題找到了,那麼就在再次加載數據時,清除該屬性就ok了
document.body.removeAttribute('data-imagelazyload');
        mui(document).imageLazyload({
            placeholder: '../../images/img_head3.png'
        });

END

那麼問題來了:chrome

爲何會這麼考慮,還有其餘的解決方案麼?

最新的解決方案參考DCloud問答的官方回覆ui

相關文章
相關標籤/搜索