Как передать 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, время: 16:37. |