Выполнить функцию js один раз на клик - PullRequest
0 голосов
/ 15 апреля 2020

Когда отправляется окно поиска, я выполняю 2 функции API.

document.getElementById('getWeather').onclick = function(){
  // init data stream
  getAPIdata();
  getAPIWeerdata();
};

Первый getAPIdata(); предназначен для самого окна поиска, и, конечно, значение может измениться при повторной отправке пользователем. Таким образом, это может быть выполнено более одного раза.

Второй, с другой стороны, getAPIWeerdata(); выполняется один раз, когда пользователь отправляет окно поиска.

Могу ли я создать что-то вроде getAPIWeerdata();.ExecuteOnce

Ответы [ 2 ]

2 голосов
/ 15 апреля 2020

Одним из решений будет использование логического значения со значением false при вызове этой функции onclick и вызов getAPIWeerdata() только в том случае, если это bool равно true. Обязательно вызовите getAPIWeerdata(), прежде чем установить для bool значение false.

Итак:

var boolean = true;

document.getElementById('getWeather').onclick = function(){
// init data stream
getAPIdata(); 
if (boolean) {
getAPIWeerdata();
}
boolean = false;
};
0 голосов
/ 15 апреля 2020

Установить атрибут data- для соответствующего элемента dom:

document.getElementById('getWeather').onclick = function(){
    // init data stream
    getAPIdata();
    if (!document.getElementById('getWeather').hasAttribute('data-inited')) {
        getAPIWeerdata();
        document.getElementById('getWeather').setAttribute('data-inited', 1'); // Value does not matter
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...