По сути, у меня есть три разных класса, которые можно применить к элементу на моей странице. Каждый из них имеет другое фоновое изображение, и я хочу использовать JQuery, чтобы узнать, какой класс в данный момент существует, и удалить этот класс и заменить его другим. а затем установите для него таймер, чтобы запустить функцию каждые 5000 мс, это то, что мой код выглядит
$(document).ready(
function(){
var toggleImage = function(){
if($(".home").hasClass("home1")){
$(".home").removeClass("home1").addClass("home2") }
elseif($(".home").hasClass("home2")){
$(".home").removeClass("home2").addClass("home3")
}
elseif($(".home").hasClass("home3")){
$(".home").removeClass("home3").addClass("home1")
}
}
setInterval(toggleImage(), 5000);
});
Класс дома всегда будет там, и я просто пытаюсь добавить и удалить другие классы в элементе. Я прихожу из PHP, поэтому я думаю, что мой синтаксис может быть выключен.
Вы должны передать функцию setInterval
. В настоящее время вы вызываете toggleImage
и передаете его возвращаемое значение, которое не undefined
.
Не вызывайте функцию:
setInterval(toggleImage, 5000);
По крайней мере, в Firefox вы получили бы ошибку времени выполнения:
Ошибка: бесполезный вызов setInterval (отсутствующие цитаты вокруг аргумента?)
Я прихожу из PHP, поэтому я думаю, что мой синтаксис может быть выключен.
Вы правы, elseif
должно быть else if
, else if
. Это синтаксическая ошибка, и вы должны были ее увидеть и на консоли.
Узнайте, как отлаживать JavaScript, чтобы найти синтаксис и ошибки времени выполнения самостоятельно.
Вы хотите передать setInterval функцию. Вызов toggleImage() запускает функцию и завершает передачу setInterval результата. Правильный синтаксис должен быть:
setInterval(toggleImage, 5000);