Как я могу приостановить "счетчик" jquery mouseenter во время анимации? - PullRequest
0 голосов
/ 30 апреля 2011

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

    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 я хочу, чтобы он ничего не делал (никаких новых указателей мыши) и только после его завершения он должен начаться снова, но он не работает.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2011

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

0 голосов
/ 30 апреля 2011

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

...