Ho diversi DIV con contenuto che hanno un attributo peso-dati che viene aggiornato regolarmente tramite AJAX.Re-arranging/-sorting DIVs senza re-inserimento in DOM
I li ordinano nel ciclo in cui I itate sui nuovi valori provenienti dalla richiesta Ajax.
Poiché il peso dei dati può essere aggiornato in qualsiasi momento a qualsiasi valore, l'ordine può cambiare completamente da aggiornamento ad aggiornamento.
La mia logica di ordinamento sembra imperfetta (per non dire altro;)) perché confronta solo ogni elemento con il successivo tramite .next()
quindi è necessario fare clic su "Ordina per peso dei dati" max. 4 volte per 4 elementi fino a quando non sono ordinati (vedere il violino sotto)
È importante sapere che i DIV da ordinare contengono risorse esterne come immagini, video ecc. Quindi è importante che vengano spostati e non ricreati, perché penso che quando reinseriti nel DOM, le risorse contenute vengano ricaricate, il che è inaccettabile per il mio caso d'uso.
Come è difficile descripte e forse capire, qui è il mio violino:
Aggiornamento
Mentre il problema principale è risolto, c'è ancora il problema che quando f.e. I video di YouTube sono inclusi, vengono ricaricati ogni volta che i DIV vengono riordinati, anche se il video non cambia posto nel DOM. Che a) sembra strano eb) interrompe il video-play. Leggendo di più sull'argomento, spostare gli iframe nel DOM sembra sempre farli ricaricare il loro contenuto - quanto è stupido?
Fiddle viene aggiornato con un peso fisso di 1 per YT-video, quindi rimane sempre in primo piano.
idee molto benvenuto !!
Alla fine, perché non fai '$ wrapper.append ($ articoli)'? –
@AlessandroVendruscolo - Perché non sono intelligente. (Vedi anche la frase di apertura della mia risposta.) Ma sì, dovrebbe funzionare. – nnnnnn
grazie! Sembra bello. Se utilizzo il suggerimento di @AlessandroVendruscolo, non mi ferirebbe il fatto che debbano essere spostati piuttosto che reinseriti? –