Innstilling onclick med javascript fungerer bare med timeout

stemmer
1

Jeg har for tiden en knapp som jeg satt en onclick til etter jeg lage element i javascript:

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

Foreløpig bare ha onclick i en timeout verk:

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

Jeg lurte på om det var noen måte å være i stand til å fjerne denne timeout, så jeg føler meg som om det kan ta mer enn 50ms for elementet å gjengi, noe som ville føre til at onclickskaperen mislykkes?

Jeg ønsker å bruke ren javascript for dette.

Alle sammen:

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);
});


Publisert på 03/12/2019 klokken 00:01
kilden bruker
På andre språk...                            


1 svar

Innstilling onclick med javascript fungerer bare med timeout

stemmer
1

Jeg har for tiden en knapp som jeg satt en onclick til etter jeg lage element i javascript:

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

Foreløpig bare ha onclick i en timeout verk:

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

Jeg lurte på om det var noen måte å være i stand til å fjerne denne timeout, så jeg føler meg som om det kan ta mer enn 50ms for elementet å gjengi, noe som ville føre til at onclickskaperen mislykkes?

Jeg ønsker å bruke ren javascript for dette.

Alle sammen:

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);
});


Svarte 03/12/2019 kl. 00:01
kilden bruker

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