- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题最终(希望如此?)归结为 JS,但由于我正在研究 Arduino Yún,我认为最好展示问题的那一面,以免遗漏任何内容。那些愿意阅读我对与手头问题没有太大关系的完全无趣的解释的人,请随意阅读。其他人,跟我来! +跳到JS问题+
云方
事情是这样的:我想根据一些将 PIN2 和 PIN3 连接到 GND 的开关来更改托管在 Yún 上的网页的 css 属性。
我使用 Bridge 示例作为我在 Arduino 方面的代码的基础,我相信它应该是这样设置的:
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
//variable constante que guarda la cantidad de puertas
#define CANT_PUERTAS 2
//variable tipo array que guarda los estados de las diferentes puertas
int estado[CANT_PUERTAS];
YunServer server;
void setup() {
Serial.begin(9600);
// Bridge startup
Bridge.begin();
//Pines que van a monitorear las puertas
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
server.listenOnLocalhost();
server.begin();
}
void loop() {
//hacer poll de estado de puertas
pollPuertas(estado, CANT_PUERTAS);
YunClient client = server.accept();
if (client) {
process(client);
client.stop();
}
delay(50);
}
...与
void pollPuertas(int estado[], int arraySize) {
for (int i = 0; i < arraySize; i++) {
estado[i] = digitalRead(2 + i);
}
}
...和
void process(YunClient client) {
String command = client.readStringUntil('/');
if (command == "estado") {
int puerta = client.parseInt();
client.print(estado[puerta]);
}
}
因此,代码背后的基本思想如下:CANT_PUERTAS 是我要监控的 PIN 数量,estado[] 是一个数组,我将在其中保存这些 PIN 的值。
函数pollPuertas
是一个简单的 for loop
读取 PIN 的状态(在我的例子中,我保留 PIN0 和 PIN1 用于将来的通信,所以我从 PIN2 开始)并将这些状态保存到 estado[]。
函数process
处理 REST 调用。我的电话是这样组织的 COMMAND/NUMBER,尽管我现在只想使用一个命令。因此,如果我的命令是“estado”,我只需使用 NUMBER 作为我的数组的索引并将该 PIN 的值打印到客户端。
这段代码没有问题。如果我访问 arduinoyun.local/arduino/estado/NUMBER,我会得到预期的结果:
JS 问题
还在我身边吗?哇。谢谢 :D。
对于那些没有阅读前一部分的人,这里有一个非常简单的评论:
现在真正的问题来了。我对 HTML、JS 和 JQuery 还很陌生,所以请多多包涵。
我想在 Arduino Yún 上托管一个简单的网站,其 CSS 属性会根据开关的状态而变化。我的想法是编写一个使用 if
的脚本。有条件地评估如何改变这些属性。该脚本将定期调用,以便网站“实时”反射(reflect)开关状态的变化。
这是我的尝试:
<!DOCTYPE html>
<html>
<head>
<title>Poll de Puertas</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"> </script>
<!-- <script type="text/javascript" src="https://code.angularjs.org/1.2.9/angular.js"></script>-->
<script type="text/javascript">
function cambiarColor(){
// if($http.get("arduinoyun.local/arduino/estado/1") === 0){
if(1==0){
$('p:nth-child(1)').css('color','green');
} else{
$('p:nth-child(1)').css('color','red');
}
$('p:nth-child(2)').css('color','blue');
}
</script>
</head>
<body onload ="setInterval(cambiarColor,3000);">
<p id="puerta1">Puerta 1</p>
<p id="puerta2">Puerta 2</p>
</body>
</html>
在正文中我有 2 <p>
元素,每个开关一个。函数cambiarColor
是我负责更改 <p>
颜色的脚本吗?使用 if
条件和一些简单的 JQuery。
在这次尝试中,我至少设法使逻辑正常工作:第一个 <p>
始终更改为红色,因为 if
总是评估为 FALSE
.此外,该函数也会定期调用。第二个<p>
我只是离开了聚会,因为他叫我胖子;(
现在,我不知道的,也是这篇长篇大论背后的真正问题是,在 if()
中放什么?在我的脚本中,以便它从我设置的“网页”中提取值(无论是 1 还是 0),以便脚本响应开关的状态。
在此先感谢您的所有帮助。
最佳答案
好吧,自从您上次发表评论后,我认为您尝试一下并看看会发生什么可能是值得的:
var response ;
var file_path = 'path/to/your/file.txt';
$.ajax({
url: file_path,
method: 'GET',
dataType: 'text',
async: false,
success: function (data) {
response = data;
}
});
//this should, in theory get you the inner contents of your file, and assign it to the variable
"response".
//now you can validate
if(parseInt(response) == 0){
//i still think using $('#puerta1') as the DOM selector is better.
$('p:nth-child(1)').css('color','green');
} else{
$('p:nth-child(1)').css('color','red');
}
$('p:nth-child(2)').css('color','blue');
});
//if nothin' happens, try and uncomment the next line to try and find what jquery is reading from your file:
//alert(response);
我认为应该是这样,或者至少我越来越接近理解您的问题并找到可能的解决方案。
再次阅读你的问题,我想我终于理解了你在这里试图做什么,所以,我认为你的问题的答案如下:
//The url to the webpage where arduino is outputing the values
$.get( "URLTOMYWEBPAGE.HTML").done(function( data ) {
if( parseInt(data ) == 0){
//i still think using $('#puerta1') as the DOM selector is better.
$('p:nth-child(1)').css('color','green');
} else{
$('p:nth-child(1)').css('color','red');
}
$('p:nth-child(2)').css('color','blue');
});
希望这实际上是您问题的解决方案。
我不确定你在这一行 "if(1==0)"
上尝试做什么,这总是错误的,我也不太明白你是如何得到的您想要在网页上阅读和评估的值,但是,可以说,值(我理解的 1 和 0)将位于 P 元素内,也就是说,您的 html 将如下所示:
<!-- assuming this values where returned from arduino -->
<p id="puerta1">1</p>
<p id="puerta2">0</p>
假设以上所有情况都成立,您的脚本将如下所示:
var puertaUNO = document.getElementById("puerta1").innerHTML;
var puertaDOS = document.getElementById("puerta2").innerHTML;
if( parseInt(puertaUNO) == 0){
$('p:nth-child(1)').css('color','green');
} else{
$('p:nth-child(1)').css('color','red');
}
$('p:nth-child(2)').css('color','blue');
或者用 Jquery
var puertaUNO = $('#puerta1').text();
var puertaDOS = $('#puerta2').text();
if( parseInt(puertaUNO) == 0){
$('#puerta1').css('color','green');
} else{
$('#puerta1').css('color','red');
}
$('#puerta2').css('color','blue');
仍然不完全清楚你想做什么,但我想就是这样。
关于javascript - 在 Arduino Yún 上使用 JS 根据其他网站的内容更改 CSS 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23376654/
我正在为我的按钮使用 onClick 功能。我的按钮代码如下所示: Button 1 Button 2 我的 JS 函数如下所示: function fadeNext(selectedId, spee
首先,我想提一下,我理解每个人在不提供至少一些试验或错误的情况下提出问题的感受,但这纯粹是一种知识需求,话虽如此,我会去提前问。 我一直无法弄清楚如何将保存在 MySQL 表中的 600-1000 个
我想做的事情有点令人困惑,而且我英语不太好,所以我先把代码贴在这里,这样你就可以很容易地理解: 以下是表单内容: Testing for Stackoverflow Option1
我学习 SDL 二维编程已有一段时间了,现在我想创建一个结合使用 SDL 和 OpenGL 的程序。我是这样设置的: SDL_Init(SDL_INIT_VIDEO); window = SDL_Cr
我创建了 2 个 data-* 标签。数据类别和数据标签。单击 href 标签后,我想复制该数据类别和数据标签以形成输入。我的代码是:
我想用 CSS 换行。我正在使用内容。 td:before { content: "Test\A Test2"; } 它不工作。如何正确
这个问题已经有答案了: Java Class that implements Map and keeps insertion order? (8 个回答) 已关闭 6 年前。 我有一个 HashMap
我正在尝试使用 JMeter 执行端到端测试。测试涉及写入SFTP文件夹并从另一个SFTP文件夹读取写入操作生成的文件。 我能够使用 JMeter SSH SFTP 插件连接到 SFTP 文件夹,并能
您好,我有带有标准服务器端 Servlet 的 GWT 客户端。 我可以从 GWT 客户端上传文件并在服务器端读取其内容 我可以将其作为字符串发送回客户端 但是 我有 GWT FormPanel与操作
我在 Plone 4.3.9 中创建了一个自定义类型的灵巧性,称为 PersonalPage,必须只允许在特定文件夹中使用 成员文件夹/用户文件夹 . 在他的 FTI 中,默认情况下 False .
在新(更新)版本的应用程序中更改小部件布局的最佳做法是什么?当新版本提供更新、更好的小部件时,如何处理现有小部件? 最佳答案 我认为您必须向用户显示一个弹出窗口,说明“此版本中的新功能”并要求他们重新
在我的应用程序中,我使用支持 View 寻呼机和 PagerTabStrip。进入查看寻呼机我有一些 fragment ,进入其中一个我正在使用支持卡片 View 。运行应用程序后,所有卡片 View
我有以下布局文件。基本上我有谷歌地图,在左上角我有一个 TextView,我需要在其中每 15 秒保持一次计数器以刷新 map 。布局很好。
我使用如下结构: HashMap > > OverallMap 如果我这样做: OverallMap . clear ( ) clear() 丢弃的所有内容(HashMap 对象、Integer 对
我在数据库中有 1000 张图像。在页面加载时,我随机显示 60 张图片,当用户滚动时,我通过 AJAX 请求添加 20 张图片。 第一种方法 我所做的是将所有图像加载到一个容器中,然后隐藏所有图像并
我正在使用 woocommerce 创建一个网上商店。 我想在每个产品上添加一个包含产品信息的表格,例如颜色、交货时间等等。 但是当我添加这张表时。本产品消失后的所有内容。 我的表的代码: td {
This question already has an answer here: What does an empty value for the CSS property content do?
因此,我正在与我的 friend 一起为 Google Chrome 开发一个扩展程序,对于大多数功能(即日历、设置等),我们打开一个模式,这样我们就不必重定向到另一个页面。当您在内容之外单击时,我们
我将可变高度的 CSS 框设置为在更大的 div 中向左浮动。现在我想添加一个标题,其中文本在框的左侧垂直显示(旋转 90 度),如下面的链接所示(抱歉还不能发布图片)。 http://imagesh
相关页面位于 www.codykrauskopf.com/circus 如果您查看我页面的右侧,在半透明容器和浏览器窗口边缘之间有一个间隙。我看了看,出于某种原因,wrap、main、content
我是一名优秀的程序员,十分优秀!