addEventListener()
을 사용한 적이 없지만 각자 원하는 HTML을 작성할 수 없습니다. <div>
콘텐츠를 생성하는 방식 때문에 버튼으로 처리됩니다. 등가은 다음과 같습니다JavaScript가 addEventListener()가 예상대로 작동하지 않습니다.
<div onmousedown="jsItems[someId].toggleImage(someGallery, someIndex);"></div>
은 내가 노력했습니다 것은 이것이다 :
JsTree.prototype.addGalleries = function(inElements) {
// ...unrelated code here removed for StackOverflow...
for (var i = 0; i < this.jsGalleries.length; i++) {
for (var j = 0; j < this.jsGalleries[i].buttons.length; j++) {
var self = this;
this.jsGalleries[i].buttons[j].addEventListener("mousedown", function() {
self.toggleImage(i, j);
});
}
}
}
경우 0 1-i
수와 0 2-j
카운트 (이 경우 두 i
에 대한) , i
는 j
는 someIndex
나타내고, I는 상기 (나 addEventListener
의 함수 내 self.id
함께) 코드와 내부 this.id
someId
액세스 수 someGallery
나타낸다. 항상 경고 것을
JsTree.prototype.toggleImage = function(inGallery, inIndex) {
alert(this.id+", "+inGallery+", "+inIndex);
}
"8, 2, 3"관계가있는 버튼을 클릭 :
문제는 이러한 "버튼"중 하나 (<div>
들)을 클릭하는 것으로는하지만 트리거 점이다. "8"은 맞지만 "2"또는 "3"으로 경고하는 이유를 알지 못합니다. 그것들은 i
과 j
에 (이 "8, 2, 2"로 경고하는 것으로 확인 됨으로써) 검증 된 것보다 1 더 많은 것 같습니다.
편집 : someId
, someGallery
및 someIndex
실제 변수가되지 않습니다, 그들은 내가 문제를 설명하려고 만들어 정크입니다.
감사합니다. 두 번째 해결 방법이 더 쉽게 이해 될 것이라고 생각합니다. – asimes
두 번째 해결 방법을 이해 했으므로 작동했습니다. 감사합니다. – asimes