首页 > 解决方案 > jQuery 代码应该通过使用来自两个外部设备按钮的 JSON 数据来更改网页中的一些简单内容

问题描述

这是我的学校项目。我试图尽可能简单地做到这一点,只是为了改变网页等的背景颜色。

我使用带有两个按钮(microbit a 和 b)的外部设备 - 连接到串行端口,写入数据字符串“aa”或“bb”。然后python代码在forever循环中读取它并将其写入json文件,这段代码应该能够进入。随着这些不断变化的json时间戳,这段代码应该读取最新按下的按钮,然后执行条件中写入的操作.

json 文件的参考时间一直在变化,通过按钮按下。

我非常感谢您的帮助,我们已经做这个项目很长时间了,这是最后阶段,但正如你所见,但我还没有到那里。

因为这在获取 json 行之后不执行任何操作……它执行了一次,直到最后 >>if,但是它停止了……为什么?我不知道..我在这方面还不够好。

代码花括号等的最后部分,我不能再计算哪个太多或>>缺少什么?!...

我的 json 示例:{"REF": 1624391142, "aa": 1624391140, "bb": 1624391142}

$(document).ready(function () {
  console.log("jQuery starts");

  var d = new Date();
  var time = d.getTime();
  setInterval(function () {
    // loop that reads every 2 sec json file,

    $.getJSON("data.json"),
      function (json) {
        console.log("test", time);

        //what is REF-time <= time
        if (time <= json.REF) {
          // any changes?

          time = json.REF;
          console.log(" REF", time);
          pressedBtn = "";
          jQuery.each(json, function (key, value) {
            //searhing

            if (value == time && key != "REF") {
              pressed = key;
              console.log("Working");
            }

            if (pressedBtn == "aa") {
              $("body").show("active"); //background color change
              console.log("pressed", pressedBtn);
              $("#toshow").show("toshow"); // comment div
            }

            if (pressedBtn == "bb") {
              $("#toshow").hide("toshow"); //comment div
              console.log("pressed", pressedBtn);
            }
          });
        }
      };
  }, 2000);
});

标签: javascriptjqueryjson

解决方案


我想我理解你,也许这是你的解决方案检查这个

$(document).ready(function(){
  setTimeout(doSomething,2000);
});

function doSomething(){
  console.log("do something");
  setTimeout(doSomething,2000);
}

这个函数每 2 秒执行一次,就像你在代码中想要的那样

我希望我对你有帮助


推荐阅读