【问题标题】:Trying to fix app javascript type error for app development尝试修复应用程序开发的应用程序 JavaScript 类型错误
【发布时间】:2020-01-18 22:10:37
【问题描述】:

尝试在使用 .js 的 FitBit 应用上切换屏幕。我可以在第一个 onclick 中切换到第二个屏幕,但第二个屏幕不起作用。我该如何解决这个问题?

import document from "document";

let myRect = document.getElementById("gen_button");
let tumbler = document.getElementById("tumbler");
let back = document.getElementById("ok");

myRect.onclick = function(e) {
  document.replaceSync("tumbler.gui");
  }

let back = document.getElementById("ok");
back.onclick = function(e) {
  document.replaceSync("index.gui");
  }

【问题讨论】:

    标签: javascript fitbit


    【解决方案1】:

    您的#ok 元素在tumbler.gui 内,因此当您的document.getElementById 调用发生时它不会存在(因为当时已加载index.gui)。

    在寻找#ok 并设置其onclick 处理程序之前需要加载tumbler.gui 文件。

    tumbler.gui被加载时,all of the references to elements in index.gui are invalidated and the handlers are destroyed

    注意:调用 replaceSync 后,所有文档和元素处理程序和侦听器都将被清除。

    所以index.gui 设置(查找元素、设置处理程序)需要在从tumbler.gui 返回后再次执行。

    我会这样处理:

    import document from 'document';
    
    // index.gui elements
    let myRect;
    
    // set up index.gui after load
    function setUpIndexScreen() {
      myRect = document.getElementById('gen_button');
      myRect.onclick = function() {
        document.replaceSync('tumbler.gui');
        setUpTumblerScreen();
      };
    }
    
    // tumbler.gui elements
    let tumbler, back;
    
    // set up tumbler.gui after load
    function setUpTumblerScreen() {
      tumbler = document.getElementById('tumbler');
      back = document.getElementById('ok');
      back.onclick = function() {
        document.replaceSync('index.gui');
        setUpIndexScreen();
      };
    }
    
    setUpIndexScreen();
    

    【讨论】:

      猜你喜欢
      • 2014-01-19
      • 2016-12-11
      • 2020-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 2015-02-14
      • 1970-01-01
      相关资源
      最近更新 更多