Stack Overflow на русском Asked by geforce on December 22, 2021
прошу, помогите советом
Вызываю последовательно 3 раза setTimeout, с разным временем, но они почему то выполняются в одно время. Подскажите, что не так делаю
//HTML
<div>
<style>
.logo_b{width:18px;height:18px;background-color:#000000;}
.logo_y{width:18px;height:18px;background-color:#FFDD00;}
</style>
<table class="logo_m" cellspacing="0" cellpadding="0">
<tr><td class="logo_y"></td><td class="logo_y"></td><td class="logo_y"></td></tr>
</table>
</div>
//JS+JQ
function function_logo(xxx,yyy){
$(".logo_m")
.find('tr:nth-child('+xxx+')')
.find('td:nth-child('+yyy+')')
.removeClass("logo_y")
.addClass("logo_b");
}
setTimeout(function_logo(1,1),1500);
setTimeout(function_logo(1,2),2000);
setTimeout(function_logo(1,3),2500);
Самое страшное, проблему могу решить только не очень правильным образом, и хочется что то более правильное
Что бы передать параметры можно завернуть вызов вашей функции в анонимную функцию:
setTimeout( function(){ function_logo(1,2); }, 2000 )
Или так:
`setTimeout( () => function_logo(1,2), 2000 )`
Или передавать пераметры после задержки. Почитайте документацию по setTimeout.
Answered by fortavey on December 22, 2021
В Вашем коде
setTimeout(function_logo(1,1), 1500);
аналогично
setTimeout(null, 1500);
потому что Вы должны передать в setTimeout
функцию, а не её результат.
Решается проблема, к примеру, так:
setTimeout( function_logo.bind(null, 1, 1), 1500);
Answered by ReinRaus on December 22, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP