我有一个“关联数组”的数组,即对象,它们保存各种HTML元素的数据和一个这样的其他参数:
container[0] = { picker_canvas: document.getElementById("background_picker"),
color_canvas: document.getElementById("background_color"),
hex_text: document.getElementById("background_text"),
mouse_down: false };
container[1] = { picker_canvas: document.getElementById("textbox_picker"),
color_canvas: document.getElementById("textbox_color"),
hex_text: document.getElementById("textbox_text"),
mouse_down: false };
container[2] = { picker_canvas: document.getElementById("font_picker"),
color_canvas: document.getElementById("font_color"),
hex_text: document.getElementById("font_text"),
mouse_down: false };
每个容器都有对颜色选择器画布,颜色预览画布,显示十六进制颜色值的文本框以及mouse_down
布尔值的引用。稍后,我通过遍历这样的容器来初始化一些事件侦听器:
for (i=0; i<3; i++) {
container[i].picker_canvas.addEventListener("mousedown", function() {
container[i].mouse_down = true;
}, false);
container[i].picker_canvas.addEventListener("mouseup", function() {
container[i].mouse_down = false;
}, false);
container[i].picker_canvas.addEventListener("mousemove", function(evt) {
getColor(container[i], evt);
}, false);
container[i].hex_text.addEventListener("change", function(evt) {
drawColorSquare(container[i], evt.target.value)
}, false);
}
但是那是行不通的,因为i
变得不确定,所以我现在正试图通过执行类似的操作来获取正确的索引,但是我不确定如何在Javascript中实际实现它]
container[i].picker_canvas.addEventListener("mousedown", function(evt) { container[container.indexof(evt.target)].mouse_down = false; }, false);
基本上,我需要在关联数组的数组中搜索
evt.target
,并使其返回数组的索引。因此,即使使用任何内置Javascript函数,这也是可能的,还是我只需要自己制作一个?
我有一个“关联数组”的数组,即对象,它们保存各种HTML元素的数据和另一个参数,例如:container [0] = {picker_canvas:document.getElementById(“ ...
由于似乎您不必担心Internet Explorer 8及更早版本,请使用forEach
:
由于我们不必在这里支持IE8,所以我们可以全力以赴: