我编写了这个脚本,该脚本在收到来自MQTT的消息时运行:
function onMessageArrived(message) {
var fullmsg=message.destinationName.split("/");
var msg=fullmsg[3]; //retrieves deviceId 2780 (string)
var payload=message.payloadString; //value of device recieved
console.log(msg, payload); // gives 2870, 100
if(payload == 100) {
$('#2780').bootstrapSwitch('setState', true); //works and toggles switch
} else if (payload == 0) {
$("#" + msg).bootstrapSwitch('setState', false); //doesn't work
}
//client.disconnect();
};
这个想法是这个脚本打开或关闭一个自举开关。我想基于变量msg得到的devideId动态地做这个。当我手动输入选择器'#2780'一切都有效。当我使用来自msg的变量时,它不起作用。它一定是傻事,但我刚开始使用jquery所以需要一些帮助。
答案 0 :(得分:0)
添加:
console.log("Setting switch to false");
...前:
$("#" + msg).bootstrapSwitch('setState', false);
这样你就可以验证是否甚至调用了bootstrap。之前,您声明有效负载= 100:
console.log(msg, payload); // gives 2870, 100
鉴于此,不会
else if (payload == 0)
阻止将开关设置为false?