Добавляя к комментарию Греццо, вы можете использовать тайм-аут JS 0, чтобы завершить выполнение предыдущей строки кода. Это работает, потому что он помещает все, что находится внутри замыкания setTimeout, в самый конец внутренней очереди кода для запуска.
Э.Г.
// Update CSS
$('#mydiv').css({'position' : 'relative', 'top' : 0});
setTimeout(function() {
funcToRunAfterUIUpdate()
}, 0);
Я слишком n00b на StackOverflow, чтобы опубликовать ссылку, я думаю, в противном случае вы можете прочитать раздел "MASTERING THE REFRESH () METHOD" здесь: http://cubiq.org/iscroll-4
"Здесь мы поместили вызов на обновление в нулевой тайм-аут, тем самым предоставив браузеру время для обновления, и новые измерения элементов были приняты правильно. Есть и другие способы убедиться, что браузер действительно обновил DOM, но так далеко нулевой таймаут оказался самым надежным. "