gpt4 book ai didi

javascript - 在 Javascript 中获取关联数组的索引

转载 作者:行者123 更新时间:2023-11-30 08:10:14 25 4
gpt4 key购买 nike

我有一组“关联数组”,即对象,它保存各种 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 };

每个容器都有对颜色选择器 Canvas 、颜色预览 Canvas 、显示十六进制颜色值的文本框和 mouse_down bool 值的引用。稍后,我通过像这样遍历容器来初始化一些事件监听器:

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 函数实现,还是我必须自己制作?

最佳答案

既然您似乎不必担心 Internet Explorer 8 和更早版本,请使用 forEach:

container.forEach(function(x) {
x.picker_canvas.addEventListener("mousedown", function() {
x.mouse_down = true;
}, false);

x.picker_canvas.addEventListener("mouseup", function() {
x.mouse_down = false;
}, false);

x.picker_canvas.addEventListener("mousemove", function(evt) {
getColor(x, evt);
}, false);

x.hex_text.addEventListener("change", function(evt) {
drawColorSquare(x, evt.target.value)
}, false);
});

关于javascript - 在 Javascript 中获取关联数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11477495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com