Код, который вы предоставили, работает ¯ \ _ (ツ) _ / ¯
Возможно, проблема в том, что вызывает stopInterval()
Но, как упоминалось вкомментарии / другие ответы, вам может быть лучше использовать другой метод
Я бы не рекомендовал использовать setTimeout в вашем случае, потому что похоже, что вы просто ожидаете загрузки некоторых элементов DOM. Проблема с тайм-аутом заключается в том, что вы не можете точно знать, насколько быстро работает компьютер, на котором будет выполняться ваш код. Возможно, телефон плохого качества с устаревшим программным обеспечением, которому потребуется больше времени для запуска вашего кода, чем при тестировании на вашем персональном компьютере, и в котором не будет загружено элементов к моменту выполнения вашей функции.
jQuery
По этой причине, и поскольку вы пометили свой вопрос с помощью jQuery
, я думаю, вы могли бы использовать $(elementYouWaitForTheDOM2beLoaded).ready(function2execute)
для каждого просматриваемого элемента вместо того, чтобы иметь цикл, ожидающий загрузки элементов. ( документация для "готовой" функции)
Vanilla JS
И если вы хотите сделать это в чистом JS, это будет document.querySelector(elementYouWaitForTheDOM2beLoaded).on('load', function2execute)
)