Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2013, 14:07
Аватар для Max_Cohen
Интересующийся
Отправить личное сообщение для Max_Cohen Посмотреть профиль Найти все сообщения от Max_Cohen
 
Регистрация: 23.06.2013
Сообщений: 11

Как передать 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.
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 23.06.2013, 14:21
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

я бы так написал
function hide(){
setTimeout(function(){document.getElementById("text").innerHTML=''}, 3333);
}
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2013, 01:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Max_Cohen,
function hide(){
var a_span=document.getElementById("text");
setTimeout( function ()
{
  a_hide_text(a_span)
}, 3333);
}
Ответить с цитированием
  #4 (permalink)  
Старый 24.06.2013, 06:44
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не работает в старых браузерах, в том числе IE8.
function hide(){
var a_span=document.getElementById("text");
setTimeout(a_hide_text.bind(this, a_span), 3333);
}
Ответить с цитированием
  #5 (permalink)  
Старый 24.06.2013, 06:53
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А еще есть такой вариант. Но он не работает даже в IE9.
function hide(){
var a_span=document.getElementById("text");
setTimeout(a_hide_text, 3333, a_span);
}


Экстра-параметры были введены в HTML5 спецификации.
Ответить с цитированием
  #6 (permalink)  
Старый 24.06.2013, 16:52
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

замыкания рулят
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как c функцией .ajax() передать несколько значений в php? Faab jQuery 11 19.11.2013 12:03
Flot Как передать переменную в функцию отрисовки точки на графике Ren jQuery 0 20.06.2012 14:16
Ребят как передать значение из php в src название изображения! SpiritDark Элементы интерфейса 4 14.05.2012 14:02
bind: как передать функции указатель на объект trial jQuery 4 25.05.2010 01:35
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41