그래서 "연관 배열"배열을 가지고 있습니다. 다양한 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 };
각 용기는 색 선택 캔버스 컬러 미리 캔버스 16 진수 색상 값을 표시하는 텍스트 박스에 대한 레퍼런스를 갖고, mouse_down boolean 나중에 나는이 같은 컨테이너를 반복하여 몇 가지 이벤트 리스너를 초기화 :
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);
}
하지만 난 정의되기 때문에 작동하지 않는, 그래서 지금 이런 일을 수행하여 올바른 인덱스를 얻기 위해 노력하고, 그러나 나는 기본적으로 내가 evt.target에 대한 연관 배열의 배열을 검색해야하고 배열의 인덱스를 반환 한 사실
container[i].picker_canvas.addEventListener("mousedown", function(evt) {
container[container.indexof(evt.target)].mouse_down = false;
}, false);
자바 스크립트
에서이를 구현하는 방법을 잘 모르겠습니다. 그래서 이것은 자바 스크립트 함수로 만들어진 모든 함수로 가능합니까? 아니면 그냥 내 자신을 만들어야합니까? 당신이 이전에 Internet Explorer 8을 걱정하지 않는 것 때문에
Javscript는 연관 배열을 지원하지 않으므로 객체를 객체로 처리하므로 용어가 올바르지 않습니다. –
알렉스가 옳다. 그것들은 "연관 배열"이 아닙니다. 실제로 여러 개의 객체가 있습니다. "picker_canvas"와 같은 객체의 속성입니다. –
또한 내가 대답 한 것보다 더 나은 해결책이있을 수 있습니다 - HTML 구조를 볼 수 있습니까? – Ryan