setTimeout
expects a function or line of code as the first parameter. You pass the result of evaluating this expression:
$('#uploaded-holder').hide()
This expression returns neither a string nor a function. It returns a jQuery collection.
Do you want to:
setTimeout(function () {
$('#uploaded-holder').hide();
}, i * 300 );
, , setTimeouts . , , . , i
, ...