Al menos para Chrome, es útil añadir un hasClass() comprobar antes removeClass(), porque jQuery asigna incondicionalmente elem.className a la nueva cadena, incluso si la cadena hasn' t cambiado, lo que provoca que Chrome invalide y vuelva a calcular el diseño.
Se podría argumentar que este es un error en Chrome y debería verificar si className en realidad ha cambiado desde el valor anterior. Sin embargo, también podría ser que el navegador tenga para volver a calcular el diseño debido a algunos requisitos poco claros que están escritos en algún lugar profundo de la especificación html.
No he probado Firefox. El inspector web de Safari es inútil ya que no le indicará por qué el diseño fue invalidado/recalculado (qué función de JavaScript lo causó).
¿Has probado si funciona de cualquier manera? ¿Lo hizo? – lanzz
bien jquery evita el error de lanzamiento en la mayoría de los casos y sí funciona – user917670
Dado que funciona y no produce errores, aparentemente no es necesario. No debe tratar de adivinar el manejo de excepciones en código de terceros; si no permite que una excepción escape sin ser detectada, entonces se ha manejado. – lanzz