Vinoth Kumar
Vinoth Kumar

Reputation: 93

setTimeOut Arrgument Passing

In JavaScript I want to use the setTimeOut() function like this

<script>    
var id=12;

setTimeOut("showGrid('i want to pass variable id here')",5000);

</script>

Upvotes: 2

Views: 125

Answers (2)

Lovro
Lovro

Reputation: 185

If you want to use parameters, try this example:

var x = "OK";
setTimeout(alertOK.bind(null,x), 3000);
x = "Would be WRONG";
console.log("before timeout:", x);

function alertOK(x){
	console.log("after timeout:",x);
}

It also works when in loop (where creating functions is not advisable).

Upvotes: 2

Adam Rackis
Adam Rackis

Reputation: 83366

The best way to do this would be to pass an anonymous function to setTimeout. This anonymous function will be able to access id

setTimeout(function() { showGrid(id); }, 5000);

Passing a string to setTimeout (instead of a function) is usually considered evil, since the string will be eval'd, and should be avoided.

Also note that you had a slight typo in your code: the function is setTimeout, not setTimeOut (note the lowercase o)

EDIT

Based on your comment, the code would look like this:

setTimeout(function() { document.getElementById().inerHTML = data; }, 500);

except of course you need to pass some sort of id to document.getElementById

Upvotes: 3

Related Questions