JavaScript事件侦听器在不调用

JavaScript事件侦听器在不调用,javascript,html,dom,Javascript,Html,Dom,我试图制作一个ui表单,当用户选择一个答案/选项时,下一个问题将在更改输入值后出现,为此,我使用forEach循环添加了事件侦听器 这是HTML <div id="one"> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore m

我试图制作一个ui表单,当用户选择一个答案/选项时,下一个问题将在更改输入值后出现,为此,我使用forEach循环添加了事件侦听器

这是HTML

  <div id="one">
        <p>
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
            tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
            quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
            consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
            cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
            proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </p>
        <input type="radio" id=q1op1 name="q1" value="1"><label for="q1op1">Option 1</label>
        <input type="radio" id=q1op2 name="q1" value="2"><label for="q1op2">Option 2</label>
        <input type="radio" id=q1op3 name="q1" value="3"><label for="q1op3">Option 3</label>
        <input type="radio" id=q1op4 name="q1" value="4"><label for="q1op4">Option 4</label>
    </div>

    <div id="two">
        <p>
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
            tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
            quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
            consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
            cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
            proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </p>

        <input type="checkbox" id=q2op1 name="q2" value="1"><label for="q2op1">Option 1</label>
        <input type="checkbox" id=q2op2 name="q2" value="2"><label for="q2op2">Option 2</label>
        <input type="checkbox" id=q2op3 name="q2" value="3"><label for="q2op3">Option 3</label>
        <input type="checkbox" id=q2op4 name="q2" value="4"><label for="q2op4">Option 4</label>

    </div>


        <div id="three">
        <p>
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
            tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
            quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
            consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
            cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
            proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </p>

        <input type="checkbox" id=q3op1 name="q3" value="1"><label for="q3op1">Option 1</label>
        <input type="checkbox" id=q3op2 name="q3" value="2"><label for="q3op2">Option 2</label>
        <input type="checkbox" id=q3op3 name="q3" value="3"><label for="q3op3">Option 3</label>
        <input type="checkbox" id=q3op4 name="q3" value="4"><label for="q3op4">Option 4</label>

    </div>
我一单击第一个问题的选项,窗口就会滚动到第三个问题,而不是第二个问题。 当我调试console.log的问题时,当我点击第一个问题的选项时,我知道两个事件触发器同时运行


发生这种情况是因为您需要将事件添加到每个元素中,如:

element => element.addEventListener('change', function() {
而不是像这样使其全球化:

element => addEventListener('change', function(){
var a=document.querySelectorAll(“#一个输入”);
var b=document.querySelectorAll(“#两个输入”);
a、 forEach(element=>element.addEventListener('change',function()){
document.getElementById('two').scrollIntoView();
}))
b、 forEach(element=>element.addEventListener('change',function()){
log('hello');
document.getElementById('three').scrollIntoView();
}))


知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。二人世界
这是一种令人厌恶的行为,因为它是一种不平等的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。

选择1 选择2 选择3 选择4 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。二人世界 这是一种令人厌恶的行为,因为它是一种不平等的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。

选择1 选择2 选择3 选择4 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。二人世界 这是一种令人厌恶的行为,因为它是一种不平等的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。

选择1 选择2 选择3 选择4
它是
元素。addEventListener()
不是
addEventListener()
。这两个版本都可以工作,但第二个版本相当于
window.addEventListener()
谢谢palash,但我想知道为什么forEach循环同时触发变量b和变量a。这是因为您为
a
b
分配了相同的
change
事件侦听器。因此,如果发生更改,事件侦听器将同时调用相应的事件处理程序。
element => addEventListener('change', function(){