Sketchfab API和Javascript交替功能只有一个按钮

时间:2018-04-20 08:47:27

标签: javascript html api button

我正在使用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);
      } 
    };
  }
};

1 个答案:

答案 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;
  };
})();