提交搜索框时,我执行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
}
}