我又回来了另一个-_-。
目前我的页面上有一些按钮可以改变我的菲利普色调灯的颜色 - 但我希望它是一个下拉列表,随着我改变选项而改变。
这是当前按钮的样子:
<button class="lightbuttontall" onclick="lightcolor(1,colorred);">Light 1 red</button>
<button class="lightbuttontall" onclick="lightcolor(2,colorred);">Light 2 red</button>
<button class="lightbuttontall" onclick="lightcolor(3,colorred);">Light 3 red</button>
</p>
<p class="lightbuttonline">
<button class="lightbuttontall" onclick="lightcolor(1,colororange);">Light 1 orange</button>
<button class="lightbuttontall" onclick="lightcolor(2,colororange);">Light 2 orange</button>
<button class="lightbuttontall" onclick="lightcolor(3,colororange);">Light 3 orange</button>
然后,在一个单独的js文件中,我有这个:
var colorred= "{\"on\":true,\"bri\":255,\"hue\":836,\"sat\":237,\"xy\":[0.6472,0.3316],\"ct\":500}"
var colororange="{\"on\":true,\"bri\":254,\"hue\":13390,\"sat\":251,\"xy\":[0.5663,0.3978],\"ct\":500}"
这就是我想弄清楚的。
<select name="jumpmenu" onChange="lightcolor(1,colorred);">
<option value="">Light 1</option>
<option value="1";>Red</option>
<option value="2";>Orange</option>
<option value="3";>Green</option>
<option value="4";>Blue</option>
<option value="5";>Pink</option>
<option value="6";>Pastel</option>
</select>
<script language="javascript">
function jumpChange(sel) {
if (sel.value === "") return;
sel.value = "";
};
</script>
如果我运行该脚本,灯泡将会变为红色,但只会变为红色,因为这是唯一可以调用的红色。所以如果我选择选项2,我不知道如何告诉HTML onChange go get colororange。希望这是有意义的。
nnnnn帮我做了很多数据切换没有代码,但我不确定这是否适用于此或如何更改它所以它确实如此。有什么想法吗?
编辑:
<select name="jumpmenu" onChange="lightcolor(this);">
<option value="">Light 1</option>
<option value="colorred";>Red</option>
<option value="2";>Orange</option>
<option value="3";>Green</option>
<option value="4";>Blue</option>
<option value="5";>Pink</option>
<option value="6";>Pastel</option>
</select>
<script language="javascript">
var colorred ="{\"on\":true,\"bri\":255,\"hue\":15331,\"sat\":121,\"xy\":[0.1721,0.0500],\"ct\":343}"
function lightcolor(light,color){
execute('PUT', 'http://'+bridge+'/api/'+hash+'/lights/'+light+'/state', color);
}
function execute($method,$url,$message){
xmlhttp=new XMLHttpRequest();
xmlhttp.open($method,$url,true)
xmlhttp.send($message);
}
</script>
这就是我现在所处的位置。我觉得我可能会越来越近了?