Получение неопределенной ошибки при попытке выполнить код JS

var i = 0;

function clickPlay(){
    var playButtons = $('.player-play');
    playButtons[i].click();
    i++;
}

function playVideos() {
    setTimeout(function () {
        clickPlay();
        playVideos();
    }, 5000); // Change this value to speed up or slow down the time interval
}

playVideos();

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

Uncaught TypeError: Cannot read property 'click' of undefined
    at clickPlay (<anonymous>:5:16)
    at <anonymous>:11:9

Он воспроизводит первое видео и ничего больше. Im noob в JS, но я попробую все, что вы говорите. Спасибо!

1 ответ

  1. У вас нет никаких ограничений для этого цикла, поэтому вы не контролируете диапазон массива.

    Лучшее использование jQuery.each:

    function playVideos() {
        $('.player-play').each(function () {
           var _this = $(this);
           setTimeout(function () {
               _this.click();
           }, 5000);
        });
    }
    
    playVideos();