Как вызывать функцию в if?

120
29 июля 2019, 03:00

Я реально не могу понять.

let activeSlide = 0 
let time = 0 
var timerId = setInterval(function() { 
  time++ 
  if (time == 5) 
  slideRight() 
}, 1000); 
 
buttons[1].click(function slideRight() { 
 
тут функция слайдера 
});

Я видимо как то не правлиьно пытаюсь вывести функцию в if то есть я ее не правильно записываю или что? Почему алерт вызывается а функция нет?

Answer 1

Чтобы функция была доступна по имени ее нужно определять отдельно:

function slideRight() {
    // тут функция слайдера
}

В данном же случае

.click(function slideRight() {... }) 

имя slideRight доступно только внутри самой функции. Поэтому и получается указанная ошибка.

Решением может стать такой код:

let activeSlide = 0
let time = 0
function slideRight() {
    // тут функция слайдера
}
var timerId = setInterval(function() {
  time++
  if (time == 5)
  slideRight()
}, 1000);
buttons[1].click(sliderRight);
Answer 2
buttons[1].click(function() {
   slideRight();
});
Answer 3
let activeSlide = 0;
let time = 0;
var timerId = setInterval(function() {
  time++;
  if (time == 5) {
    slideRight();
    time = 0;
  }
}, 1000);
document.getElementById("button").addEventListener("click", slideRight);
function slideRight() {
  alert('Hello world!');
}
READ ALSO
Сортировка всех столбцов по убыванию DataGridView

Сортировка всех столбцов по убыванию DataGridView

Таблица заполняется рандомные цифрами и по нажатии на кнопку все столбцы должны быть отсортированы по убываниюПопробовал написать вот такой...

166
C# Application.Current.Dispatcher == null

C# Application.Current.Dispatcher == null

Пытаюсь обновить UI из другого потока, все вроде работает, но иногда ApplicationCurrent

123