Ciao, ho un grosso problema che mi turba da un po 'di tempo, il più delle volte sono stato in grado di evitarlo ma ora non c'è altro modo. Di seguito è riportata una funzione che, una volta eseguita, invia una richiesta di post per ogni casella selezionata. Ho bisogno di aspettare che $ .each abbia finito di aggiornare la pagina. Ho eseguito test con location.reload nel callback di ciascuno e al di fuori di ciascuno. Su 10 caselle selezionate, solo 7-8 vengono elaborati con la ricarica nel callback di $ .each e 3-4 se spostati dopo $ .each (sempre all'interno di .click). Ho bisogno di aspettare, in qualche modo, per $ .each per finire e poi aggiornare la pagina. C'è un modo per farlo?
$('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();
});
Bella idea di usare la proprietà 'length'. Probabilmente potresti evitare di eseguire il selettore due volte facendo qualcosa come 'window.Remaining = $ ('input: checked'). Each (function() {...}). Length'. : o) – user113716
solo una nota a margine: perché lo stai mettendo sotto 'finestra'? Ciò funzionerebbe altrettanto bene nell'ambito locale. non c'è bisogno di inquinare lo spazio dei nomi globale. –