Hola, tengo un gran problema que me ha molestado durante bastante tiempo, la mayoría de las veces he podido evitarlo pero ahora no hay otra manera. A continuación se muestra una función que cuando se ejecuta envía una solicitud posterior para cada recuadro marcado. Necesito que espere hasta que el $ .each haya terminado de actualizar la página. He realizado pruebas con location.reload en la devolución de llamada de cada uno y fuera de cada uno. De 10 casillas seleccionadas, solo se procesan 7-8 con la recarga en la devolución de llamada de $ .each y 3-4 si se mueve después de $ .each (aún dentro del clic.) Necesito que espere, de alguna manera, por $ .each para terminar y luego actualizar la página. ¿Hay una manera de hacer eso?
$('button.moveToTable').click(function(event){
$("input:checked").each(function(){
$.post('/table/move-to-table',
{orderID: $(this).val(),
tableID: $('#moveToTableID').val()
},
function(data){
location.reload();
});
});
//location.reload();
});
Una buena idea para usar la propiedad 'length'. Probablemente podría evitar ejecutar el selector dos veces haciendo algo como 'window.Remaining = $ ('input: checked'). Each (function() {...}). Length'. : o) – user113716
solo una nota al margen: ¿por qué lo pones en 'ventana'? Esto funcionaría igual de bien en el ámbito local. no hay necesidad de contaminar el espacio de nombres global. –