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

435
Visualizações
¿Cómo usar $.each() para crear una información sobre herramientas dinámica en datepicker Jquery?

Tengo un selector de fecha de Jquery donde enumero todos los días festivos y muestro el nombre de cada día festivo en una información sobre herramientas durante el efecto de desplazamiento. Pero estoy enfrentando un error, todo funciona normalmente cuando uso un ciclo for para mostrar mi información sobre herramientas, pero cuando trato de usar $.each() mi información sobre herramientas no funciona, aquí está mi código:

 $(".datepicker").datepicker({ dateFormat: 'dd/mm/yy', beforeShowDay: function(d) { var dmy = ""; dmy += ("00" + d.getDate()).slice(-2) + "-"; dmy += ("00" + (d.getMonth() + 1)).slice(-2) + "-"; dmy += d.getFullYear(); if ($.inArray(dmy, enableDays) >= 0) { $.each(data, function (index, item) { if(item.date == dmy){ console.log('forEach: ', item) return [true, 'highlight', item.name]; } }) /* for (var i = 0; i < data.length; i++) { if (data[i].date == dmy) { console.log('for: ', data[i]) return [true, 'highlight', data[i].name]; } } */ return [true, '']; } else { return [false, ""]; } } });

Esto es lo que devuelve mi $.each() en la consola con los nombres de las vacaciones, pasó tres veces. ingrese la descripción de la imagen aquí

Y esto es lo que devuelve la consola cuando uso el bucle for:

ingrese la descripción de la imagen aquí

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

0

Para ponerlo simple:

return dentro de un bucle for detendrá la ejecución y saldrá de la función con ese valor devuelto ( [true, 'highlight', item.name] en su caso), que por cierto se espera que la función beforeShowDay regrese con una matriz para que funcione correctamente .

jQuery's $.each (iterable, callback(index[, item])) , iterará sobre todo el conjunto iterable (Array) sin detenerse a menos que use return false; .

La matriz devuelta que está utilizando está encerrada dentro de su propio alcance de callback de llamada, pero no en el alcance de la función externa beforeShowDay . Por lo tanto, verá todos los registros, pero $.each no se detuvo con un retorno que finalmente saldría de la función beforeShowDay . En última instancia, siempre sale con el return [true, ''] Array.

Para que funcione con $.each uso:

 let result = [true, ""]; // Default $.each(data, function (index, item) { if (item.date == dmy) { result = [true, 'highlight', item.name]; // Modify it! return false; // Exit $.each loop } }); return result; // Return Default or Modified

Aquí está lo anterior implementado en su ejemplo:

 $(".datepicker").datepicker({ dateFormat: 'dd/mm/yy', beforeShowDay: function(d) { var dmy = ""; dmy += ("00" + d.getDate()).slice(-2) + "-"; dmy += ("00" + (d.getMonth() + 1)).slice(-2) + "-"; dmy += d.getFullYear(); if ($.inArray(dmy, enableDays) >= 0) { let result = [true, ""]; // Default $.each(data, function (index, item) { if (item.date == dmy) { result = [true, 'highlight', item.name]; // Modify it! return false; // Exit $.each loop } }); return result; // Return Default or Modified } else { return [false, ""]; } } });
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