#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 .. но без тайм-аута, потому что он не распознается как анимированный, когда вы запускаете его.