我正在尝试做一个相对简单的 javascript 程序/页面,只有 3 个滑块 RGB 来影响正方形和圆形的颜色。
当我将事件侦听器与输入元素“内联”时,它工作得很好:即, onchange="someFunction(x,y)"
但是,当我将事件侦听器移到 javascript 中并使用 时addEventListener,它仅在页面加载时工作一次,然后再也不会工作......几乎就像 aremoveEventListener已被调用,但我还没有这样做。
是的,在调用 javascript 之前,我确保所有元素都加载到页面上。
我已经修改了这段代码,只是为了给我一个 ALERT 而不是实际调用我想要的函数slideUpdate,只是为了调试目的。
这是: JAVASCRIPT:
var colorBox = document.getElementById("colorbox");
var colorCircle = document.getElementById("colorCircle");
var colorPicker = document.getElementById("colorPicker");
var sliderRed = document.getElementById("Red");
var sliderGreen = document.getElementById("Green");
var sliderBlue = document.getElementById("Blue");
//sliderRed.addEventListener("onchange", alertForDebug() );
//sliderRed.addEventListener("onclick", alert(sliderRed.value) );
document.addEventListener('DOMContentLoaded', function () {
alert("document loaded!");
sliderRed.addEventListener("change", alert(sliderRed.value) );
//document.querySelector('#Red').addEventListener('change', slideUpdate(sliderRed.value, sliderRed.id) );
//document.querySelector('#Green').addEventListener('onchange', slideUpdate(this.value, this.id) );
//document.querySelector('#Blue').addEventListener('onchange', slideUpdate(this.value, this.id) );
} …Run Code Online (Sandbox Code Playgroud)