Вход

Просмотр полной версии : jquery-эффекты стартуют, но не завершаются


etoTT
09.07.2014, 23:16
Собственно проблема описана в теме.
Это касается эффектов в которых мы можем задать скорость или скорость задается по умолчанию(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
Нужен минимальный тестовый пример на котором воспроизводится проблема =)
http://irish.journalisti.ru/wp-content/uploads/2012/12/Fortune-teller-300x248.jpg