Я знаю, что это похоже на состояние гонки, но я собираюсь выйти на конечности и предположить, что это на самом деле проблема сферой.
_ListData
существует внутри функции reload()
, и, если я правильно помню, обратный вызов может унаследовать эту область и все же сделать ее доступной на один уровень глубиной.
function reload(index) {
_ListData[index] = null;
...
}
Но обратный вызов обратного вызова (который выглядит так, как будто вы делаете это), вероятно, потеряет эту область и будет существовать в полностью анонимной области.
reload -> itemLookaheadCallback -> loadDataCallback
Решение? Попробуйте использовать window
, чтобы определить глобально доступное местоположение для этой переменной. (window
всегда глобален).
Вот изменения, которые могли бы сделать это:
function reload(index) {
window._ListData[index] = null;
...
}
function loadDataCallback(lookAheadData, index, loadNeighbors) {
var item = window._ListData[index];
...
};
В любом случае, это только предположение. Возможно, неправильно, но относительно легко проверить.