Выполнение jQuery до установленного интервала?

Этот скрипт изменяет текст DIV каждые 5 секунд, но, он запускается через 5 секунд, как мне сделать первое изменение текста после загрузки страницы, а затем каждые 5 секунд?

var text = ["1", "2", "3", "4", "5"];
var counter = 0;
var elem = document.getElementById("textas");
var inst = setInterval(change, 5000);

function change() {
  elem.innerHTML = text[counter];
  counter++;
  if (counter >= text.length) {
    counter = 0;
    // clearInterval(inst); // uncomment this if you want to stop refreshing after one cycle
  }
}

вызвать change () и сразу установить интервал?

Steve0 18.10.2018 22:09

Почему бы просто не запустить change() при загрузке страницы? Тогда setInterval сделает это. jsfiddle.net/nvu90cy2/1

justDan 18.10.2018 22:09

Возможный дубликат Выполнить функцию setInterval без задержки в первый раз

André DS 18.10.2018 22:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
69
1

Ответы 1

Вызвать функцию изменение один раз, косвенно из setInterval метод.
Кроме того, вы можете установить максимальное количество вместо использования массива, который содержит все ваши итерации.

var counter = 0,
    maxNumber = 5,
    elem = document.getElementById('textas'),
    inst = setInterval(change, 5000);

function change() {
  counter++;
  elem.innerHTML = counter;
  if (counter >= maxNumber) {
    counter = 0;
  }
}

change();
<h1 id = "textas"></h1>

Вы можете немного уменьшить это, используя операцию модуля для counter = ++counter % maxNumber;.

Taplar 19.10.2018 00:14

Это, несомненно, короче, но мне пришлось бы установить maxNumber на 6, чтобы иметь возможность достичь числа 5, что может немного сбить с толку.

Quentin Veron 19.10.2018 00:23

В любом случае твоего числа никогда не будет пять. 4 становится 5, затем 5 == 5, поэтому оно становится равным нулю. то же самое, когда 4 становится 5, 5% 5 становится нулем

Taplar 19.10.2018 00:27

Действительно. Я допустил небольшую ошибку. Я должен был использовать innerHTML, прежде чем очищать считать. Редактирую свой ответ.

Quentin Veron 19.10.2018 00:30

На самом деле этот ответ отклоняется от OP, как сейчас. Он не использует массив, который они пытаются использовать.

Taplar 19.10.2018 00:30

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

Quentin Veron 19.10.2018 00:35

Другие вопросы по теме