From 91eb6c7407a6ac19714cc6b7c9c1a89a0e4cc7a7 Mon Sep 17 00:00:00 2001 From: Hannes Widmoser Date: Fri, 3 Jun 2016 10:59:29 +0200 Subject: [PATCH] Fix indices when traversing rows --- dist/tileview.js | 14 +++++++------- package.json | 2 +- src/tileview.ts | 14 +++++++------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/dist/tileview.js b/dist/tileview.js index c9f6a6f..daf56c3 100644 --- a/dist/tileview.js +++ b/dist/tileview.js @@ -63,7 +63,7 @@ var cachedRowCount; var virtualRows = []; function handleTileSizeChange() { - forEachElement(function (el, i) { + forEachElement(function (el) { el.css('width', scope.options.tileSize.width + 'px'); el.css('height', scope.options.tileSize.height + 'px'); }); @@ -129,16 +129,16 @@ forEachRow(removeRow); } function forEachElement(fn) { - forEachRow(function (row) { + forEachRow(function (row, rowIndex) { for (var i = 0; i < row.children().length; ++i) { - fn(row.children().eq(i), i); + fn(row.children().eq(i), rowIndex * itemsPerRow + i); } }); } function forEachRow(fn) { - var numOfElements = visibleRowCount(); - for (var i = 0; i < numOfElements; ++i) { - fn(itemContainer.children().eq(i), i); + var numOfRows = visibleRowCount(); + for (var i = 0; i < numOfRows; ++i) { + fn(itemContainer.children().eq(i), startRow + i); } } function visibleRowCount() { @@ -243,7 +243,7 @@ var startIndex = startRow * itemsPerRow; forEachRow(function (el, i) { virtualRows.push(el); - updateRow(el, startRow + i, false); + updateRow(el, i, false); }); renderedStartRow = startRow; renderedEndRow = endRow; diff --git a/package.json b/package.json index 677d2e2..21ec1d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-tileview", - "version": "0.6.0", + "version": "0.6.1", "description": "A tileview for angular", "main": "gulpfile.js", "scripts": { diff --git a/src/tileview.ts b/src/tileview.ts index ca94ae9..8656bdc 100644 --- a/src/tileview.ts +++ b/src/tileview.ts @@ -75,7 +75,7 @@ declare const angular: any; let virtualRows = []; function handleTileSizeChange() { - forEachElement((el, i) => { + forEachElement(el => { el.css('width', scope.options.tileSize.width + 'px'); el.css('height', scope.options.tileSize.height + 'px'); }); @@ -149,17 +149,17 @@ declare const angular: any; } function forEachElement(fn) { - forEachRow(row => { + forEachRow((row, rowIndex) => { for (let i = 0; i < row.children().length; ++i) { - fn(row.children().eq(i), i); + fn(row.children().eq(i), rowIndex*itemsPerRow + i); } }); } function forEachRow(fn) { - const numOfElements = visibleRowCount(); - for (let i = 0; i < numOfElements; ++i) { - fn(itemContainer.children().eq(i), i); + const numOfRows = visibleRowCount(); + for (let i = 0; i < numOfRows; ++i) { + fn(itemContainer.children().eq(i), startRow + i); } } @@ -280,7 +280,7 @@ declare const angular: any; const startIndex = startRow * itemsPerRow; forEachRow((el, i) => { virtualRows.push(el); - updateRow(el, startRow + i, false); + updateRow(el, i, false); }); renderedStartRow = startRow; renderedEndRow = endRow;