Instelling onclick met javascript werkt alleen met time-out

stemmen
1

Ik heb momenteel een knop die ik stel een onclick aan nadat ik maak het element in javascript:

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

Op dit moment, alleen met de onclick in een time-out werken:

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

Ik vroeg me af of er een manier om dit te kunnen time-out te verwijderen was, omdat ik het gevoel dat het meer zou kunnen duren dan 50 ms voor het element te maken, wat zou leiden tot de onclickschepper falende?

Ik wil graag pure javascript gebruiken voor deze.

Alles bij elkaar:

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


De vraag is gesteld op 03/12/2019 om 00:01
bron van user
In andere talen...                            


1 antwoorden

Instelling onclick met javascript werkt alleen met time-out

stemmen
1

Ik heb momenteel een knop die ik stel een onclick aan nadat ik maak het element in javascript:

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

Op dit moment, alleen met de onclick in een time-out werken:

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

Ik vroeg me af of er een manier om dit te kunnen time-out te verwijderen was, omdat ik het gevoel dat het meer zou kunnen duren dan 50 ms voor het element te maken, wat zou leiden tot de onclickschepper falende?

Ik wil graag pure javascript gebruiken voor deze.

Alles bij elkaar:

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


antwoordde op 03/12/2019 om 00:01
bron van user

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