non mi stupisce che su mobile il funzionamento del tuo script sia tutto molto più lento: a occhio ti direi
1) Metti in una variabile-cache $(this) visto che lo usi diverse volte, il che significa che richiami continuamente (e inutilmente) la funzione jQuery quando non ce ne sarebbe bisogno
definisci a monte $this = $(this) e usa $this come riferimento in tutte le occorrenze successive.
2) Evita tutti quei reflow che stai provocando, cambiando di continuo la geometria della pagina (nascondi e mostri blocchi, cambi la proprietà display)
La soluzione ottimale è cambiare o aggiungere solo una classe sull'elemento parent e di codificare le impostazioni di stile via css in modo tale che con la classe aggiunta gli elementi annidati si comportino di conseguenza (mostrandosi o nascondendosi)
3) Hai usato la virgola come terminazione della riga. Usa il punto e virgola
4) Non è necessario usare sempre jQuery quando ci sono delle alternative altrettanto semplici : ad esempio $(this).attr('title'); richiama la funzione jQuery e poi chiama anche il metodo attr(). Potresti scrivere direttamente this.title

Rispondi quotando