Almeno per Chrome, è utile aggiungere una hasClass() controllare prima removeClass(), perché jQuery assegna incondizionatamente elem.className alla nuova stringa, anche se la stringa hasn' t cambiato, il che fa sì che Chrome invalidi e ricalcoli il layout.
Si potrebbe obiettare che si tratta di un bug in Chrome e dovrebbe verificare se il className ha effettivamente cambiato rispetto al valore precedente. Tuttavia, potrebbe anche essere che il browser abbia per ricalcolare il layout a causa di alcuni requisiti oscuri che sono stati scritti da qualche parte nelle specifiche html.
Non ho testato Firefox. La web inspector di Safari è inutile in quanto non ti dirà perché il layout è stato invalidato/ricalcolato (quale funzione javascript lo ha causato).
Hai provato se funziona in entrambi i modi? Fatto? – lanzz
bene jquery evita l'errore di lancio nella maggior parte dei casi e sì funziona – user917670
Poiché funziona e non produce errori, apparentemente non è necessario. Non dovresti provare a gestire la gestione delle eccezioni secondo il codice di terze parti - se non lascia che un'eccezione venga ignorata, allora è stata gestita. – lanzz