Как передать this на setTimeout?
Привет!
Встал вопрос такого рода: как передать id, на setTimeout? Не большой код для лучшего понимания: HTML: <span id="text">Hello</span> <button onclick="hide();">Hide</button> JS:
function hide(){
var a_span=document.getElementById("text");
setTimeout("a_hide_text("+a_span+");", 3333);
}
function a_hide_text(id){
id.innerHTML = "";
}
Как-то. Если можно организовать по другому, пишите. Я знаю только основу JS. Спасибо. |
я бы так написал
function hide(){
setTimeout(function(){document.getElementById("text").innerHTML=''}, 3333);
}
|
Max_Cohen,
function hide(){
var a_span=document.getElementById("text");
setTimeout( function ()
{
a_hide_text(a_span)
}, 3333);
}
|
Не работает в старых браузерах, в том числе IE8.
function hide(){
var a_span=document.getElementById("text");
setTimeout(a_hide_text.bind(this, a_span), 3333);
}
|
А еще есть такой вариант. Но он не работает даже в IE9.
function hide(){
var a_span=document.getElementById("text");
setTimeout(a_hide_text, 3333, a_span);
}
Экстра-параметры были введены в HTML5 спецификации. |
замыкания рулят
|
| Часовой пояс GMT +3, время: 22:21. |