all'inizio pensavo si aprisse solo l'ultimo, poi ho visto che hai usato un reverse() sull'array e quindi apre solo il primo

Potrebbe essere un problema di closure?

che succede se modifichi così
codice:
for (var i = 0; i < items.length; i++) {
    (function(item, ii) {
       doOne(item, ii);
    })(items[i], i);
}
?