Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当函数更改元素时,如何在更改时触发事件?_Javascript_Html_Events_Javascript Events_Event Handling - Fatal编程技术网

Javascript 当函数更改元素时,如何在更改时触发事件?

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

所以我有一个主按钮和一个从按钮。设置主收音机将使用javascript设置从收音机。设置从属仅设置从属

我已经为从机设置了一个事件监听器来触发一个函数,但它只在用户手动更改时触发,而不是在主机设置时触发。我希望在用户或主机设置从机时运行该函数

事件侦听器是否仅设置为侦听用户操作?我怎样才能让它工作

我在这里树立了我的榜样

谢谢

HTML-

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