画像の遅延読み込みを処理する 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
。
すべてのウィジェットではなく、ウィジェットを使用している特定の要素のイベントをバインド/バインド解除するにはどうすればよいですか?
それとも私はこれを間違っていますか、より良いアプローチはありますか?