在Java中获取关联数组的索引

问题描述 投票:1回答:2

我有一个“关联数组”的数组,即对象,它们保存各种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(“ ...

javascript arrays indexing dom-events associative-array
2个回答
6
投票

由于似乎您不必担心Internet Explorer 8及更早版本,请使用forEach


0
投票

由于我们不必在这里支持IE8,所以我们可以全力以赴:

© www.soinside.com 2019 - 2024. All rights reserved.