Как я могу приостановить «счетчик» jquery mouseenter во время выполнения анимации?

#jquery #if-statement #mouseleave #mouseenter

#jquery #if-оператор #mouseleave #mouseenter

Вопрос:

У меня проблема с jquery mouseenter и mouseleave. У меня есть кнопка linkbutton, которая сдвигается влево при наведении на нее курсора, чтобы показать ссылку-картинку. Для более плавной анимации требуется подождать не менее одной секунды, прежде чем сдвинуться назад. Но из-за задержки он срабатывает при перемещении по нему более одного раза.
Я искал по этой теме в течение нескольких дней, но решений не было. Теперь я подумал о решении этого с условием. Вот мой код на данный момент.

     if( $(".block_dev").is ('animated') ) {} else {  

    $(".border_dev").mouseenter(function() {  
        $(".block_dev").animate({"left": "-=41px"}, "slow")  
                       .wait(); })  
                    .mouseleave(function() {  
        $(".block_dev").animate({"left": " =41px"}, "slow")  
                       .wait(); }) }  
  

.wait() — это сценарий тайм-аута. С условием if я хочу, чтобы он ничего не делал (не учитывался новый mouseenter), и только когда он будет завершен, он должен запуститься снова, но он не работает.
Спасибо за вашу помощь!

Комментарии:

1. спасибо за совет, вот он: jsfiddle.net/eUkE4 это работает аналогично его версии на моем веб-сайте. редактировать: sry обновлен с по-прежнему не работающим условием if. jsfiddle.net/eUkE4/2

2. Я не вижу в этом if инструкции.

Ответ №1:

Я подозреваю, что вы просто имели в виду, .is(':animated') поскольку просто animated само по себе не является допустимым селектором. (Теоретически это позволило бы выбирать теги like <animated ...> таким же образом, p как и теги like <p ...> , и, конечно, это совсем не то, что вы имели в виду.)

Комментарии:

1. Перенос исходных привязок событий даже в это мало что даст.

2. Спасибо! Я обновил его! но он по-прежнему не делает «ничего», а просто игнорирует условие..

Ответ №2:

Попробуйте поместить ваше условие внутрь обработчиков событий (не вокруг вашего их создания) и использовать ':animated' (вместо 'animated' ).

Комментарии:

1. Спасибо! Я пытаюсь это прямо сейчас. Когда я найду рабочее решение, я обновлю его!

2. Это работает! большое спасибо! рабочий скрипт: jsfiddle.net/eUkE4/3 .. но без тайм-аута, потому что он не распознается как анимированный, когда вы запускаете его.