Как добавить задержку в document.getElementById

У меня есть это:

Я пытаюсь загрузить этот js-код, value.id соответствует элементу, который обнаруживается после загрузки страницы. Но на самом деле этот код выполняется до загрузки элемента, и у меня возникает эта ошибка:

Невозможно прочитать свойство nodeType со значением null

Хочу добавить что-то вроде задержки на document.getElementById(value.id)

Я пробовал это, но ничего:

    const area = setTimeout(document.getElementById(value.id), 4000);
    Count.on(area, counter => {
    ...

а также:

function setDelay() {
  document.getElementById(value.id);
}
setTimeout(setDelay, 4000);
const area = setDelay
Count.on(area, counter => {
...

оба дают одну и ту же ошибку, любая идея ??

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

brso05 21.06.2018 21:58

И что такое value.id?

brso05 21.06.2018 21:59

Спасибо, как вы рекомендуете мне использовать этот window.onload, используя фрагмент кода, который я отправил в верхней части сообщения. Спасибо!!

K3ny1 21.06.2018 21:59

весь код работает отлично, у меня заявлены все значения. Мне только нужно знать, как настроить задержку: D

K3ny1 21.06.2018 22:00

это смотря ... что такое value.id?

brso05 21.06.2018 22:00

value - глобальная переменная?

brso05 21.06.2018 22:01

value.id - это значение, которое установит мой клиент, а не я. Мой клиент создаст элемент, а затем добавит желаемую ценность. Затем мой скрипт примет это значение и получит данные, используя это значение. Вот почему я должен добавить задержку.

K3ny1 21.06.2018 22:01

да, можно сказать, что это глобальная переменная.

K3ny1 21.06.2018 22:02

Так вы зависите от ввода пользователя? Тогда вам не нужна задержка, вам просто нужно подключиться к событию, инициированному пользователем ...?

brso05 21.06.2018 22:02

Нет, допустим, я добавляю несколько полей своему клиенту. И мой клиент может решить активировать функцию на каком-то элементе. Он добавляет идентификатор к этому элементу. И мой скрипт берет этот идентификатор и выполняет его. Если я запускаю код не на странице загрузки, после загрузки страница работает отлично. Но мне также нужно иметь возможность запускать это после загрузки страницы, потому что, если в этом поле сохранены какие-то данные, я хочу их прочитать.

K3ny1 21.06.2018 22:04

Используйте value.onload, чтобы установить функцию, которая вызывается при загрузке значения, то есть, когда ваш клиент будет устанавливать элемент значения.

Wololo 21.06.2018 22:08

Привет, Сауд, спасибо, это имеет смысл. Любой пример ?? Спасибо!

K3ny1 21.06.2018 22:15
value.onload = function() { const area = document.getElementById(value.id); //... }; ... попробуйте что-нибудь в этом роде
Wololo 21.06.2018 22:18
Поведение ключевого слова "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) для оценки ваших знаний,...
4
13
863
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете поместить код в одну функцию и назвать ее функцией setDelay.

function setDelay() {
    const area = document.getElementById(value.id);
    Count.on(area, counter => {
    ...
}
setTimeout(setDelay, 4000);

setTimeout ничего не вернет вызывающему абоненту.

Здравствуйте, спасибо Вивек за ответ. Пытался, но ошибка не исчезла. Еще одна идея?

K3ny1 21.06.2018 22:15

@ K3ny1 Вы должны проверить значение value.id ИЛИ, возможно, вы можете использовать setDelay.bind(this, value.id) и изменить function setDelay(valuesId)

Vivek 21.06.2018 22:18
Ответ принят как подходящий

Спасибо всем, я решил это вот так:

$(document).ready(function(){
// your code
});

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