0
I have the following code:
const setup = async() => {
    var arrayDados = [];
    let teuarray = [];
    var comeco = 4;
    var index = 2300;
    teuarray.push({id:1,nome: "arrayDados[i]"},{id:2,nome: "arrayDados[i]"});
    const lista = document.getElementById('lista');
    teuarray.map((cliente)=> {
      let divRowT = document.createElement("div");
      divRowT.className = "row-table";
      let divDivT = document.createElement("div");
      divDivT.className = "div-table";
      let id = document.createElement("a");
      id.className = "col-table";
      id.addEventListener("click", retornaPai(), false);
      id.href = "";
      let idValue = document.createElement("div");
      idValue.appendChild(document.createTextNode(cliente.id));
      id.appendChild(idValue);
      divDivT.appendChild(id);
      let nome = document.createElement("a");
      nome.className = "col-table";
      nome.addEventListener("click", retornaPai(), false);
      nome.href = "";
      let nomeValue = document.createElement("div");
      nomeValue.appendChild(document.createTextNode(cliente.nome));
      nome.appendChild(nomeValue);
      divDivT.appendChild(nome);
      let divColT = document.createElement("div");
      divColT.className = "col-table";
      let btnExcluir = document.createElement("input");
      btnExcluir.type = "button";
      btnExcluir.id = cliente.id;
      btnExcluir.value = "Excluir";
      btnExcluir.addEventListener("click", excluir, false);
      divColT.appendChild(btnExcluir);
      divDivT.appendChild(divColT);
      divRowT.appendChild(divDivT);
      lista.appendChild(divRowT);
    });
  }
  function retornaPai(nome) {
    // var pai = window.opener;
    console.log("teste");
    // pai.document.getElementById('usuario').value = nome;
    // pai.document.getElementById("buscarUsuario").onclick();
  }
  function excluir() {
    let btnSelecionado = event.currentTarget;
    console.log(btnSelecionado.id);
    var posicao = (btnSelecionado.id - 2300)/56;
    let url = decodeURI("http://192.168.1.142/limpaUsuario?");
    let params = "a="+posicao;
    sendConf(url,params,"excluído");
  }
  
.table{
  }
  .row-table-head, .div-table, .row-table{
    display: grid;
    grid-template-columns: 50px 180px 70px;
    width: 300px;
    margin: auto;
  }
  .row-table-head{
    display: block;
  }
  .row-table a{
    text-decoration: none;
    color: #000;
  }
  .div-table:hover{
    background-color: #a0a0a0;
  }
  .row-table-head .col-table{
    padding: 6px 8px;
    border: 1px solid #ccc;
  }
  .row-table .col-table{
   padding: 0px 6px;
  }
  <body align="center" onload="setup()"> <!--retirei o setup(), pois já faço uma chamada no js-->
        <h1>IMPEXPROS</h1>
        <div id="lista" class="table"> <!--inclui um id pra facilitar no js-->
          <div class="row-table-head">
            <div style="background-color:black; color:white; font-weight:bold" class="col-table">LISTA TODOS USUARIOS</div>
          </div>
        </div>
  </body>
I don’t understand why the function returnPai() is being called 4 times, and my addeventlistener should call it only when clicking on the HTML element.
Can anyone tell me why?
And how would I pass a data to the function, for example: backPai(client.name)?
– Vitor Pereira
@Vitorpereira put together two different ways of doing in the answer code. Choose what you prefer, they’re different but for your case they’re similar.
– Sergio
Thanks Sergio, it worked as planned!
– Vitor Pereira