Насколько я могу судить, проблема в том, что у вас, вероятно, есть этот .animate({"top": "+=67px"}
кусок кода.
Вы должны добавить .stop (), чтобы он останавливался при повторном нажатии и не продолжал, вот так: $(".subdiv").stop().animate({"top": "+=67px"}, "medium");
Теперь ваша проблема заключается в том, что вы добавляете и вычитаете исходное значение, и если анимация не завершена, все ваши значения будут испорчены.
Лучшим решением было бы не складывать и не вычитать при выполнении анимаций такого типа, а предпочтительно получать значения css от самих элементов или, по крайней мере, устанавливать значения css явно, например: animate({"top": "67px"}
, но тогда вы бы должны найти способ найти правильные значения для каждого последующего клика.
Вторым вариантом будет установка stop () для автоматического перехода в конец анимации, это приведет к небольшому пропуску анимации при повторном щелчке по обработчику, но это самый простой способ решения вашей проблемы. выглядеть так:
$(".subdiv").stop(true, true).animate({"top": "+=67px"}, "medium");