Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery-эффекты стартуют, но не завершаются (https://javascript.ru/forum/jquery/48605-jquery-ehffekty-startuyut-no-ne-zavershayutsya.html)

etoTT 09.07.2014 23:16

jquery-эффекты стартуют, но не завершаются
 
Собственно проблема описана в теме.
Это касается эффектов в которых мы можем задать скорость или скорость задается по умолчанию(slideDown/Up, FadeIn/Out и т.д.).
Вводная. Есть проект с достаточно большим функционалом(и не самым структурированным кодом), основная задача которого считывать информацию с сервера, управлять ею, и записывать обратно через Ajax-запросы(т.е. запросы это вполне нормальное и довольно частое явление для проекта). Помимо этого есть несколько кнопок, которые либо делают модальное окно через Fade, либо список через slideDown.
Собственно проблема. Как она себя проявляет. Во-первых, проблема плавающая. т.е. кнопки могут отрабатывать корректно, а могут повисать на старте. Во-вторых Что собственно значит "повисать на старте"?
Допустим для случая с slideDown, я имею кнопку, которая по клику запускает для заданного элемента эффект отображения через slideDown, при клике, style для этого элемента становиться "overflow: hidden; height: 1px; display: block + значение margin" и видно что функа перестает работать дальше. Элемент повисает в этом состоянии. Те же яйца для FadeIn, элемент начинает отображаться(соответсвено вешает модальное окно на всю страницу), но opacity близка к нулю, соответсвенно для пользователя это просто блочит страницу, нужен ребут.
Вызываются эффекты без наворотов($(элемент).SlideDown()). jQuery вроде 1.7-1.8 версия(не хочу соврать, не на работе).
Сообсвенно интересует кто-нибудь с этим встречался? Какие могут быть предположения? И есть ли советы как это можно отладить? Корреляцию с Ajax-запросами я не нашел, animate не пробывал пока. Если повесить скрытие отображение через hide() show() все отрабатывает на ура(во всяком случае есть другие кнопки которые используют эти методы и по ним не было найдено косяков).

рони 09.07.2014 23:31

etoTT,
нет кода можно только гадать - возможен множественный запуск эффектов.

etoTT 10.07.2014 09:06

Таки я написал, как вызывается функция(под рукой нет кода, но там все тривиально, клик на элементе, вызывает метод, который вызывает slideDown на определенном элементе). Весь яваскрипт кинуть анрил, там более 10000-20000 строк кода.
Попробую поколдовать с очереди и задержкой

MallSerg 10.07.2014 09:20

Нужен минимальный тестовый пример на котором воспроизводится проблема =)


Часовой пояс GMT +3, время: 02:10.