Definir onclick com javascript só funciona com tempo limite

votos
1

Atualmente tenho um botão que eu definir um onclick para depois que eu criar o elemento em javascript:

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

Atualmente, apenas tendo o onclick em um tempo limite obras:

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

Eu queria saber se havia alguma maneira de ser capaz de remover este limite de tempo, como eu me sinto como se pudesse levar mais de 50ms para o elemento para renderizar, o que levaria ao onclickcriador falhando?

Eu gostaria de usar javascript puro para isso.

Todos juntos:

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


Publicado 03/12/2019 em 00:01
fonte usuário
Em outras línguas...                            


1 respostas

Definir onclick com javascript só funciona com tempo limite

votos
1

Atualmente tenho um botão que eu definir um onclick para depois que eu criar o elemento em javascript:

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

Atualmente, apenas tendo o onclick em um tempo limite obras:

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

Eu queria saber se havia alguma maneira de ser capaz de remover este limite de tempo, como eu me sinto como se pudesse levar mais de 50ms para o elemento para renderizar, o que levaria ao onclickcriador falhando?

Eu gostaria de usar javascript puro para isso.

Todos juntos:

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


Respondeu 03/12/2019 em 00:01
fonte usuário

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