campusboy

Вопрос по jQuery (addClass, delay, removeClass)

6 сообщений в этой теме

Подскажите, пожалуйста, почему не работает эта конструкция:

jQuery(".fp_in_form").addClass("flash_form").delay(10000).removeClass("flash_form");

Смысл, хочу добавлять класс элементу, через время убирать. Или это через setTimeout надо пробовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё, догнал, как сделать.

var boxesInWindow = jQuery(".fp_in_form");
      boxesInWindow.addClass("flash_form");
      function pausemyform (){
       boxesInWindow.removeClass("flash_form");
      }
      setTimeout (pausemyform,5000);
     }

Но почему предыдущий код не заработал, я так и не понял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот рабочий пример с delay

Если хотите можете посмотреть вот тут: https:// www. jmac.ru/ test.html

А вот и код:

<script type="text/javascript">
    $(document).ready(function(){
       $(".add").addClass("test").delay(10000).queue(function(){
           $(this).removeClass("test").deuque();
        });
    });
</script>
campusboy понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вот и код:

Спасибо, круто! Но тогда как объяснить бездействие?

jQuery(".fp_in_form").addClass("flash_form").delay(10000).removeClass("flash_form"); 

По спецификации ж должно 10 секунд пройти, прежде чем начнет работать removeClass. Но по факту это всё происходит мгновенно. Ещё раз спасибо за код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Вот рабочий пример с delay

А вот и код:

Кстати, мой код лучше в одном плане. Мой код работает так: клацают по ссылке "Заказать услугу", медленно проматывается до блока формы, подсвечивается/затухает блок. Вот ваш код на 1 раз. Если второй раз щёлкнуть по ссылке, то идет промотка до блока, добавляется класс, но уже не убирается. Мой же код работает без этого дефекта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, круто! Но тогда как объяснить бездействие?

jQuery(".fp_in_form").addClass("flash_form").delay(10000).removeClass("flash_form"); 
По спецификации ж должно 10 секунд пройти, прежде чем начнет работать removeClass. Но по факту это всё происходит мгновенно. Ещё раз спасибо за код.

 

Это происходит из-за того, что почти все методы в jQuery синхронны, исключения show, hide, slide, fade, animate, и тому подобные, поэтому приходится использовать [/size]queue()

 

Кстати, мой код лучше в одном плане. Мой код работает так: клацают по ссылке "Заказать услугу", медленно проматывается до блока формы, подсвечивается/затухает блок. Вот ваш код на 1 раз. Если второй раз щёлкнуть по ссылке, то идет промотка до блока, добавляется класс, но уже не убирается. Мой же код работает без этого дефекта.

 

Если честно я так пример написал, как используется delay, я ведь не видел, что код конкретно должен делать.

campusboy понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу