Jump to content
  • 0

Выполнение функции через N раз.


Aroused
 Share

Question

Нужно сделать так, чтобы функция по щелчку mouseWheel происходила через 2 раз(в данном случае).

Ничего лучше этого способа в голову ничего не пришло:


....
var abcX = 0;
if (wheelDeltaY < 0){ // если крутим колесо вниз
++abcX; // +1 к переменной abcX
if (abcX == 3){ // если abcX == 3
myScroll.scrollToPage('next', '0', 1000); // происходит функция
abcX = 0; // сбрасываем abcX для цикличности
return false;
}
};
....

Тут беда в переменных, почему это не работает?

Работает так(но срабатывает при каждом действии):


if (wheelDeltaY < 0){myScroll.scrollToPage('next', '0', 1000); return false};

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Тут беда в переменных, почему это не работает?

Потому что твоя функция вызывается ровно столько раз, сколько генерирует событие.

Так как переменная abcX у тебя локальная (наличствует var), то она удаляется из памяти сразу после завершения работы функции.

Мало того, даже если она и сохранилась каким-то магическим образом (через замыкание), то ты ее все равно обнуляешь

var abcX = 0;

По идее ты должен хранить счетчик для того элемента, на котором срабатывает событие.

Link to comment
Share on other sites

  • 0

Вот я так и думал что сама функция сразу удаляется, просто хотел узнать, есть какие либо варианты.

Так куда копать? Изучить замыкания (тёмная тема)? Или понять где хранить счетчик?

А есть вариант использовать таймаут, только чтобы он не запоминал действия? А то после него сразу вываливаются все действия которые происходили.

Edited by Aroused
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   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.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy