jsfiddle.net/0w2smb8g/5
Во-первых, тебе стоит научится пользоваться дебагером JS. А также стилизировать код по-человечески. Во-вторых, научись выносить данные в переменные. В-третьих, избегай избыточного кода и вычислений (хотя в моем примере это присутствует).
А конкретно у тебя ошибка была в том, что ты пытался использовать методы не того типа. Гугли "утинная типизация". В JS она играет важную роль.
В том варианте что я скинул есть правки и работает синхронно и без тормозов. Попытайся сам разобраться.
ПС: "Почему не работает?" это не вопрос.