Javascript 当函数更改元素时,如何在更改时触发事件?
所以我有一个主按钮和一个从按钮。设置主收音机将使用javascript设置从收音机。设置从属仅设置从属 我已经为从机设置了一个事件监听器来触发一个函数,但它只在用户手动更改时触发,而不是在主机设置时触发。我希望在用户或主机设置从机时运行该函数 事件侦听器是否仅设置为侦听用户操作?我怎样才能让它工作 我在这里树立了我的榜样 谢谢 HTML-Javascript 当函数更改元素时,如何在更改时触发事件?,javascript,html,events,javascript-events,event-handling,Javascript,Html,Events,Javascript Events,Event Handling,所以我有一个主按钮和一个从按钮。设置主收音机将使用javascript设置从收音机。设置从属仅设置从属 我已经为从机设置了一个事件监听器来触发一个函数,但它只在用户手动更改时触发,而不是在主机设置时触发。我希望在用户或主机设置从机时运行该函数 事件侦听器是否仅设置为侦听用户操作?我怎样才能让它工作 我在这里树立了我的榜样 谢谢 HTML- <form id="master">Master control: <br> Red:<input id="red" class
<form id="master">Master control: <br>
Red:<input id="red" class="color" type="radio" name="color" value="red" checked>
Blue:<input id="blue" class="color" type="radio" name="color" value="blue">
</form>
<form id="slave">Slave: <br>
Red:<input id="redSlave" type="radio" class="colorSlave" name="colorSlave" value="red" checked>
Blue:<input id="blueSlave" type="radio" class="colorSlave" name="colorSlave" value="blue">
</form>
主控:
红色:
蓝色:
从属:
红色:
蓝色:
JS-
var color=document.getElementById('master').queryselectoral('.color');
var colorValue='';
var master=document.getElementById('master');
var slave=document.getElementById('slave');
函数beep(){
对于(i=0;i
以编程方式更改状态不会触发事件,您必须自己触发事件处理程序,这很简单,只需->谢谢。我会检查出来,或者,您使用slave.onchange()代码>在setSlave(colorValue)之后代码>
var color = document.getElementById('master').querySelectorAll('.color');
var colorValue = '';
var master = document.getElementById('master');
var slave = document.getElementById('slave');
function beep() {
for (i = 0; i < color.length; i++) {
if (color[i].checked === true) {
var colorValue = color[i].value;
//console.log(colorValue);
}
}
setSlave(colorValue);
}
function setSlave(value) {
var slaveSelect = slave.querySelectorAll('.colorSlave');
//console.log(slaveSelect);
for (i = 0; i < slaveSelect.length; i++) {
if (slaveSelect[i].checked === true && slaveSelect[i].value === value) {
return;
} else if (slaveSelect[i].checked === true && slaveSelect[i].value !== value) {
//console.log(slaveSelect[i]);
slaveSelect[i].checked = false;
for (i = 0; i < slaveSelect.length; i++) {
if (slaveSelect[i].value === value) {
slaveSelect[i].checked = true;
}
}
}
}
}
function boop() {
console.log('slave has changed');
}
master.addEventListener("change", beep);
slave.addEventListener("change", boop);