私は別のものを持って戻ってきました-_-。
現在、私のページには Philip の色相ライトの色を変更するためのボタンがありますが、オプションを変更すると変更されるドロップダウンにしたいと考えています。
現在のボタンの外観は次のとおりです。
<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>
そのスクリプトを実行すると、電球 1 が赤に変わりますが、それが思い出せる唯一の電球であるため、赤だけです。したがって、オプション 2 を選択した場合に onChange で colororange を取得するように HTML に指示する方法がわかりません。
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>
これが私が今いるところです。近づきそうな気がする?