1

我回来了另一个-_-。

目前我的页面有按钮来改变我的飞利浦色调灯的颜色——但我希望它是一个下拉菜单,当我改变选项时会改变。

以下是当前按钮的外观:

<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 去获取 colororange。希望这是有道理的。

nnnnn 在执行 data-switchNo 代码方面帮助了我很多,但我不确定这是否适用于此或如何更改它。有任何想法吗?

编辑:

<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>

这就是我现在的位置。我觉得我可能会越来越近?

4

0 回答 0