@davc

Как приостановить функцию в js?

Добрый день! есть такой код

<div id="click1"></div>
<div id="click2"></div>


$("#click1").bind("click",function(){
   enter();
})
function enter (){
   $("#atr").bind("mouseenter", function(){
      $("#atr").css({"background-color":"green"})
   })
   $("#atr").bind("mouseleave", function(){
      $("#atr").css({"background-color":"blue"})
   })
   $("#atr").bind("click", function(){
      $("this").bind("click",function(){slideToggole();})
   })
}
$("#click2").bind("click",function(){})


Знаю что все функции работаю 1 раз, но у меня внутри функции такие собитии как mouseenter и mouseleave.
Как можно приостановить функцию enter и все его содержимого после клика на #click2? всем спс!
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
сделать флаг
var pryamo_v_dirdochku = false;
менять его, и проверять где надо, как вариант - писать в html в дата атрибут или может даже в webstorage, тут уже зависит от задачи и желания
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Вот это случайно не ваш-же вопрос?
Как отключить или выходить с функции в js?

Функция enter заканчивает свою работу вот здесь (1)
Но может вызываться повторно при клике по #click1 (2)
r6vdjq.png

Могу предположить, что вы хотите сняь вот эти три обработчика событий
gzki7P.png

Для этого можно исплользовать jQuery.unbind(), а еще лучше перепиcать все на on(), one() и off().

Еще раз, простыми словами, для тех кто лениться прочитать документацию:
ваша функция enter навешивает на #atr обработчики событий и завершает свою работу. Нет никакого смысла ее приостанавливать потому что она и так уже свое дело сделала.

Обработчики событий привязаны к элементу #atr и срабатывают когда возникает событие mouseleave, mouseenter и click. Срабатывают независимот от того, что функция enter уже не работает. И будут срабатывать каждый раз пока вы их не снимете.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы