在Click上执行一次js函数



提交搜索框时,我执行2个API函数。

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

第一个getAPIdata();用于搜索框本身,当然,当用户再次提交时,该值可能会更改。所以这可以被执行不止一次。

另一方面,第二个getAPIWeerdata();在用户提交搜索框时执行一次。

我可以创建类似getAPIWeerdata();.ExecuteOnce的东西吗

一种解决方案是在调用onclick函数时使用设置为false的布尔值,并且只有当该布尔值为true时才调用getAPIWeerdata()。在将bool设置为false之前,请确保调用getAPIWeerdata()

因此:

var boolean = true;
document.getElementById('getWeather').onclick = function(){
// init data stream
getAPIdata(); 
if (boolean) {
getAPIWeerdata();
}
boolean = false;
};

在相应的dom元素上设置data-属性:

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
}
}

最新更新