Подтвердить что ты не робот

Вызовите функцию setInterval в jQuery?

Я пытаюсь создать интервал вызова функции в jQuery, но он не работает! Мой первый вопрос: могу ли я объединить общий JavaScript с jQuery?

Должен ли я использовать setInterval("test()",1000); или что-то вроде этого:

var refreshId = setInterval(function(){
    code...
}, 5000);

Где я могу поместить функцию, которую я вызываю, и как мне активировать интервал? Разница в том, как объявить функцию в JavaScript по сравнению с jQuery?

4b9b3361

Ответ 1

Чтобы написать лучший код, вы должны "использовать" последний подход, используя ссылку на функцию:

var refreshId = setInterval(function() {}, 5000);

или

function test() {}
var refreshId = setInterval(test, 5000);

но ваш подход

function test() {}
var refreshId = setInterval("test()", 5000);

в основном также действителен (пока test() является глобальным).

Обратите внимание, что нет такой вещи, как "в jQuery". Вы все еще пишете язык Javascript; вы просто используете некоторые готовые функции, которые являются библиотекой jQuery.

Ответ 2

Прежде всего: Да, вы можете смешивать jQuery с обычным JS:)

Лучший способ создать межповоротный вызов функции - использовать метод setTimeout:

Например, если у вас есть функция test() и вы хотите повторить все 5 секунд, вы можете создать ее следующим образом:

function test(){
    console.log('test called');
    setTimeout(test, 5000);
}

Наконец, вы должны вызвать функцию один раз:

$(document).ready(function(){
    test();
});

Эта функция готового документа вызывается автоматически, после загрузки всего html.

Ответ 3

jQuery - это всего лишь набор помощников/библиотек, написанных в Javascript. Вы все равно можете использовать все функции Javascript, чтобы вы могли вызывать любые функции, также из внутренних обратных вызовов jQuery. Поэтому обе возможности должны быть в порядке.