Impostazione onclick con javascript funziona solo con timeout

voti
1

Al momento ho un pulsante che ho impostato un onclick a dopo creo l'elemento in JavaScript:

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

Attualmente, solo avendo la onclick in opere timeout:

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

Mi chiedevo se ci fosse un modo per essere in grado di rimuovere questo timeout, come mi sento come se potrebbe richiedere più di 50 ms per l'elemento a rendere, che porterebbe al onclickcreatore fallendo?

Vorrei utilizzare javascript puro per questo.

Tutti insieme:

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


È pubblicato 03/12/2019 alle 00:01
fonte dall'utente
In altre lingue...                            


1 risposte

Impostazione onclick con javascript funziona solo con timeout

voti
1

Al momento ho un pulsante che ho impostato un onclick a dopo creo l'elemento in JavaScript:

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

Attualmente, solo avendo la onclick in opere timeout:

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

Mi chiedevo se ci fosse un modo per essere in grado di rimuovere questo timeout, come mi sento come se potrebbe richiedere più di 50 ms per l'elemento a rendere, che porterebbe al onclickcreatore fallendo?

Vorrei utilizzare javascript puro per questo.

Tutti insieme:

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


Risposto il 03/12/2019 a 00:01
fonte dall'utente

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