2015-06-09 3 views
-1

Я новичок в jQuery и надеюсь, что кто-то может мне помочь.jQuery: Как использовать setTimeout для временного изменения цвета фона

Я пытаюсь временно изменить цвет фона строки таблицы, затем вернуться к исходному цвету и сделать что-то еще, например. в приведенном ниже примере удалите строку.

С моим кодом он удаляет правильную строку, но до этого я не вижу выделения этой строки.

Как сказать ему, чтобы ждать е миллисекунд до следующего шага и (для других примеров) как установить его на обратном вернуться к первоначальному цвету после этого (обычно я хотел бы использовать .css('background-color', '') для этого) ,

Мой JQuery:

if($(this).closest('table').find('tbody > tr').length > 1) { 
    setTimeout(function(){ 
     $(this).closest('tr').css('background-color', 'red'); 
    }, 1200); 
    $(this).closest('tr').remove(); 

Большое спасибо заранее, Майк

+3

пут удалить() внутри тайм-аут и .css() за пределами –

+0

Так вы хотите, чтобы фон переключался с одного цвета на другой? Вы хотите, чтобы это продолжало цикл или просто цикл один раз? – NewToJS

+0

@HimanshuTanwar: Спасибо - попробуем это. – keewee279

ответ

1

Попробуйте это:

if($(this).closest('table').find('tbody > tr').length > 1) { 

     // Change background 
     $(this).closest('tr').css('background-color', 'red'); 

     var that = this; 

     // Wait 1.2 seconds, then remove the row 
     setTimeout(function(){   
      $(that).closest('tr').remove(); 
     }, 1200); 
    } 
+0

Спасибо за это - если событие не будет удалять tr, мне нужно будет установить задний фон вручную, а? – keewee279

+0

Обновлен пример выше, чтобы использовать «selfie» для области «this». Дайте мне знать, если это не сработает для вас. –

+1

Спасибо большое - это работает! Примите, как только смогу. – keewee279

Смежные вопросы