Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

181
Visualizações
Javascript onclick problem with multiple parameters

I am trying to pass multiple parameters in a 'onclick' but it is not working and JS gave me headaches.

When clicking the 'div' and going to agregarADetalleMenu gives me this error:

SyntaxError: missing ) after argument list

function LlenarTableMenu(data) {
  $('#cards-productos').empty();

  $.each(data, function(i, val) {

    var block2 = '<div class="col-4 col-md-6" onclick="agregarADetalleMenu(' + val.id + ', ' + val.name + ', ' + val.price + ')">' +
      '<figure class="card card-product"> ' +
      '<div class="img-wrap">' +
      ' <img src="' + val.imagen + '">' +
      @* '<center><a class="btn-overlay" href="#"><i class="fa fa-plus-circle"></i> AGREGAR </a></center>' + *@ '</div>' +
      '<figcaption class="info-wrap">' +
      '<a href="#" class="title">' + val.name + '</a>' +
      '<div class="action-wrap"> ' +
      '<div class="price-wrap h5">' +
      @* '<span class="price-new">' + val.price.toFixed(2) + '</span>' + *@ '<span style="display: none;" class="catid">' + val.id + '</span>' +
      '</div>' +
      '</div>' +
      '</figcaption> ' +
      '</figure> ' +
      '</div>';

    $("#cards-productos").append(block2);
  });
}

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Do you mean this?

Note I wrapped the function values in quotes - you nested your quotes

function LlenarTableMenu(data) {
  $('#cards-productos').html(

  data.map(val => `<div class="col-4 col-md-6" onclick="agregarADetalleMenu('${val.id}','${val.name}',${val.price})">
      <figure class="card card-product">
        <div class="img-wrap">
          <img src="${val.imagen}">
          <center><a class="btn-overlay" href="#"><i class="fa fa-plus-circle"></i> AGREGAR </a></center>
        </div>
        <figcaption class="info-wrap">
          <a href="#" class="title">${val.name}</a>
          <div class="action-wrap">
            <div class="price-wrap h5">
              <span class="price-new">${val.price.toFixed(2)}</span>
              <span style="display: none;" class="catid">${val.id}</span>
            </div>
          </div>
        </figcaption>
      </figure>
    </div>`).join("")
  );
}

This is better

function LlenarTableMenu(data) {
  $('#cards-productos').html(

  data.map(val => `<div class="agregar col-4 col-md-6"  data-id="${val.id}" data-name="${val.name}" data-price="${val.price}">
      <figure class="card card-product">
        <div class="img-wrap">
          <img src="${val.imagen}">
          <center><a class="btn-overlay" href="#"><i class="fa fa-plus-circle"></i> AGREGAR </a></center>
        </div>
        <figcaption class="info-wrap">
          <a href="#" class="title">${val.name}</a>
          <div class="action-wrap">
            <div class="price-wrap h5">
              <span class="price-new">${val.price.toFixed(2)}</span>
              <span style="display: none;" class="catid">${val.id}</span>
            </div>
          </div>
        </figcaption>
      </figure>
    </div>`).join("")
  );
}

and then have

$('#cards-productos').on("click",".agregar",function() {
  agregarADetalleMenu(this.dataset.id,this.dataset.val,this.dataset.price)
})
about 4 years ago · Juan Pablo Isaza Relatório

0

You're missing quotes around the values being passed in to the function. Because you already used single and double quotes in your string, you can use escaped single (or double) quotes as follows:

onclick="agregarADetalleMenu(\'' + val.id + '\', \'' + val.name + '\', \'' + val.price + '\')"
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda