2

我创建了一个处理图像延迟加载的 jQuery 小部件。当滚动条发生变化时,检查每个图像是否可见,如果可见,则加载该图像。

我的小部件是这样的。

_create : function() {
    var self = this;
    if(self.isVisible())
    {
        self.load();
    }
    else
    {
        $(window).bind('scroll.'+self.widgetName,self.checkScroll);
    }
},
checkScroll : function() {
    var self = this;
    if(self.isVisible())
    {
        $(window).unbind('scroll.'+self.widgetName,self.checkScroll);
        self.load();
    }
},

如果最初图像在视口中可见,则它已加载,但如果不是,则滚动条事件绑定到小部件的checkScroll功能。

我的问题是unbind所有小部件都是全局的。因此,一旦加载了第一个惰性图像,其他图像都不会被checkScroll调用。

如何绑定/取消绑定正在使用小部件的特定元素的事件,而不是所有小部件?

还是我做错了,有更好的方法吗?

4

0 回答 0