Есть куча вещей, которые не соответствуют твоему коду. Во-первых, ваша нулевая проверка только проверяет, что переменная не имеет строкового значения, равного 'null'
. Если вы устанавливаете свойство backgroundImage
, строка, которую вы назначаете, содержит несоответствующие скобки.
Но больше всего setTimeout
выполняется в контексте window
, где ваши переменные недоступны (и вы не должны этого хотеть). Вместо этого измените свой звонок на
setTimeout(function() { changeBgImage(num, el) }, 1000);
Таким образом, полное исправление будет
if(el){
el.style.backgroundImage='url(images/bg_image'+randomImageNum+'.jpg);';
var timer = setTimeout(function() { changeBgImage(num, el) }, 1000);
}