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

106
Visualizações
Establecer el valor predeterminado antes de que se active el evento de clic

Tengo grupos de botones. Una vez que el usuario hace clic en el enlace, filtra el valor según el contenido del enlace. Por defecto agregué la clase seleccionada. Quiero que el valor predeterminado del enlace que contiene la clase selected se considere para el filtrado antes de que se active el evento de clic. Funciona bien cuando el usuario hace clic en c-btn-group pero no considera el valor predeterminado cuando se carga la página. A partir de ahora, muestra datos completos sin filtrar cuando se carga la página.

 <div class="c-btn-group"> <a class="c-btn selected">Large Cap</a> <a class="c-btn">Small Cap</a> <a class="c-btn">virginica</a> </div>

JS

 $('.c-btn-group').on('click', 'a', function(event) { var searchTerm = this.textContent; /* 4th column filtering */ $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) { if (data[3] == searchTerm) {return true;} return false; }) table.draw(); $.fn.dataTable.ext.search.pop(); // Add or remove 'selected' class; event.preventDefault(); $('a').removeClass('selected'); $(this).addClass('selected'); });
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Pruebe el siguiente script. Aquí está la demostración

Separe la lógica del filtrado de tabla de datos dentro de la función de filter . Obtenga el texto seleccionado por $('.c-btn-group .selected').text(); y filter(initialSelectedText);

 var myList2; $.ajax({ url: "https://raw.githubusercontent.com/markwsac/jsonfile/main/jsondata.json", type: "get", dataType: 'text', async: false, success: function(response) { if (!response) return; response = response.slice(0, -1); // trim ";" at the end window.myList2 = JSON.parse(response); }, error: function(err) { console.log(err); } }); var myList = window.myList2; $(document).ready(function () { table = $("#mfTable").DataTable({ data: myList, paging: true, lengthChange: false, searching: true, info: false, columns: [ { data: 'Fund Name' }, { data: 'Morningstar Rating' }, { data: 'Category Rank' }, { data: 'Category' }, { data: 'Expense Ratio' }, { data: 'AUM (Cr)' }, { data: 'NAV' }, ], columnDefs: [{ "defaultContent": "-", "targets": "_all" }] }); const initialSelectedText = $('.c-btn-group .selected').text(); filter(initialSelectedText); $('.c-btn-group').on('click', 'a', function(event) { var searchTerm = this.textContent; /* 4th column filtering */ filter(searchTerm); // Add or remove 'selected' class; event.preventDefault(); $('a').removeClass('selected'); $(this).addClass('selected'); }); }); function filter(searchTerm){ $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) { if (data[3] == searchTerm) {return true;} return false; }); table.draw(); $.fn.dataTable.ext.search.pop(); }
about 4 years ago · Juan Pablo Isaza Relatório

0

DataTable proporciona una opción para esto. Cuando esté inicializando su tabla, simplemente use la opción searchCols que cargaría la tabla con la búsqueda inicial provista. por ejemplo:

 table = $("#mfTable").DataTable({ data: myList, paging: true, lengthChange: false, searching: true, info: false, columns: [ { data: 'Fund Name' }, { data: 'Morningstar Rating' }, { data: 'Category Rank' }, { data: 'Category' }, { data: 'Expense Ratio' }, { data: 'AUM (Cr)' }, { data: 'NAV' }, ], columnDefs: [{ "defaultContent": "-", "targets": "_all" }], searchCols: [ null, null, null, { "search": "Large Cap" }, null, null, null, ] })

Aquí está el enlace para esta opción https://datatables.net/reference/option/searchCols

También puede usar el método de búsqueda propio de las bibliotecas en lugar de implementarlo usted mismo, así que en lugar de escribir:

 $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) { if (data[3] == searchTerm) {return true;} return false; }) table.draw(); $.fn.dataTable.ext.search.pop();

simplemente escriba: table.column(3).search(searchTerm).draw();

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