Ciao raga, ecco il mio problema:
dal mio server mostro una lunghissima lista di giocatori. Ecco il codice di uno solo per farviPoi ho creato un filtro in testa alla lista per nascondere i giocatori che non hanno il ruolo desiderato:codice:<div class="players-container" title="ROLO GIOCATORE" > NOME GIOCATORE </div>
Nel mio file .js ho creato lo script che filtra i giocatori in base al ruolo:codice:<div class="filter-players-little filter-players-little_clicked" title="Portiere"><span class="text-filter">Port...</span><div class="loading-filter"></div></div> <div class="filter-players-little" title="Difensore"><span class="text-filter">Dif...</span><div class="loading-filter"></div></div> <div class="filter-players-little" title="Centrocampista"><span class="text-filter">Centr...</span><div class="loading-filter"></div></div> <div class="filter-players-little" title="Attaccante"><span class="text-filter">Attac...</span><div class="loading-filter"></div></div>
In pratica non fa altro che mostrare il div ".loading-filter" quando clicchiamo su un filtro, nascondere tutti i giocatori che hanno un ruolo diverso da quello richiesto e mostrare quelli con il ruolo richiesto. Per non continuare oltremodo..... lo script funziona bene, ma ho notato che sui dispositivi mobile è verametne molto lento. A questo punto avevo pensato di aggiungere quel ".loading-filter" ma ho scoperto che comunque non me lo fa vedere finchè non ha completato il filtro sulla lista. Insomma come posso mostrare prima il ".loading-filter" e poi cominciare il filtro sulla lista ? Attualmente credo faccia tutto contemporaneamente non mostrando quindi la prima parte dello script che è puramente grafica.codice:$('.filter-players-little').on("click",function(){ var filtro = $(this).attr("title"); $(this).children(".text-filter").hide(); $(this).children(".loading-filter").css("display","inline-block"); $(".filter-players-little_clicked").removeClass('filter-players-little_clicked'), $(this).addClass('filter-players-little_clicked'), $('.players-list-little .players-container').hide(), $('.players-container').each(function(){ var attributo_ruolo = $(this).attr('title'); if( attributo_ruolo == filtro ){ $(this).show() } }), $(this).children(".text-filter").show(), $(this).children(".loading-filter").hide(), })
Spero di essere stato chiaro, non sono bravo a spiegare.
Grazie in anticipo !

Rispondi quotando
