Jump to content

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


Recommended Posts

  • VIP

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

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

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

Link to post
Share on other sites

Есть вопрос? Задай его профессиональным веб-мастерам, SEO и другим специалистам!

  • VIP

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

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

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

Link to post
Share on other sites

Вот рабочий пример с 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>
Link to post
Share on other sites
  • VIP

А вот и код:

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

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

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

Link to post
Share on other sites
  • VIP

 

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

А вот и код:

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

Link to post
Share on other sites

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

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

 

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

 

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

 

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...