Ustawianie onclick z javascript działa tylko z limitu czasu

głosy
1

Obecnie mam przycisk, który mogę ustawić onclick aby po utworzeniu elementu w javascript:

document.querySelector('.info').forEach(element => {
    element.innerHTML = `<button id=show-popup-${id}>Show</button>`;
});

Obecnie, mając tylko onclick w ciągu prac timeout:

window.setTimeout(function() {
  document.getElementById('show-popup').onclick = function() {
    console.log(Hello);
  }
}, 50);

Zastanawiałem się, czy istnieje jakiś sposób, aby być w stanie usunąć ten limit czasu, ponieważ czuję się tak, jakby to mogło trwać dłużej niż 50ms dla elementu do renderowania, który doprowadziłby do onclicktwórcy upadającego?

Chciałbym użyć czystego javascript do tego.

Wszyscy razem:

document.querySelector('.info').forEach(element => {
    element.innerHTML = `<button id=show-popup-${id}>Show</button>`;

    window.setTimeout(function() {
      document.getElementById('show-popup').onclick = function() {
      console.log(Hello);
  }
}, 50);
});


Utwórz 03/12/2019 o 00:01
źródło użytkownik
W innych językach...                            


1 odpowiedzi

Ustawianie onclick z javascript działa tylko z limitu czasu

głosy
1

Obecnie mam przycisk, który mogę ustawić onclick aby po utworzeniu elementu w javascript:

document.querySelector('.info').forEach(element => {
    element.innerHTML = `<button id="show-popup-${id}">Show</button>`;
});

Obecnie, mając tylko onclick w ciągu prac timeout:

window.setTimeout(function() {
  document.getElementById('show-popup').onclick = function() {
    console.log("Hello");
  }
}, 50);

Zastanawiałem się, czy istnieje jakiś sposób, aby być w stanie usunąć ten limit czasu, ponieważ czuję się tak, jakby to mogło trwać dłużej niż 50ms dla elementu do renderowania, który doprowadziłby do onclicktwórcy upadającego?

Chciałbym użyć czystego javascript do tego.

Wszyscy razem:

document.querySelector('.info').forEach(element => {
    element.innerHTML = `<button id="show-popup-${id}">Show</button>`;

    window.setTimeout(function() {
      document.getElementById('show-popup').onclick = function() {
      console.log("Hello");
  }
}, 50);
});


Odpowiedział 03/12/2019 o 00:01
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more