我正在使用Sketchfab api,我想在两个功能之间交替。我试过这个,但它只运行一次。谢谢。
hidebutton.onclick = function(){
exterior = new Boolean (true);
console.log(exterior);
if(exterior == true){
api.hide(nodeTop);
exterior = !exterior;
console.log(exterior);
if(exterior == false){
hidebutton.onclick = function(){
api.show(nodeTop);
console.log('funcion else');
exterior = true;
console.log(exterior);
}
};
}
};
答案 0 :(得分:1)
你应该使用普通布尔值(true
)而不是构造函数(new Boolean
)。
您需要在函数外部声明布尔值,以便在点击之间保留其值:
let exterior = true;
hidebutton.onclick = function() {
if (exterior) api.hide(nodeTop);
else api.show(nodeTop);
exterior = !exterior;
};
更好的是,保持它自包含,以便只有click函数可以访问它(封装很好 - 避免污染外部作用域):
hidebutton.onclick = (() => {
let exterior = true;
return () => {
if (exterior) api.hide(nodeTop);
else api.show(nodeTop);
exterior = !exterior;
};
})();