그래서 자바 스크립트 코드를 분류하려고합니다.자바 스크립트 클래스 및 마우스 클릭 문제
나는 간단하게 정수를 포함하는 node라는 클래스, 정수를 표시하는 label 요소 및 정수를 증가시키는 button 요소를 가지고 있습니다.
코드를 통해 incrementInteger
함수를 호출하면 모든 것이 예상대로 작동합니다. 그러나 마우스 클릭 이벤트 리스너를 사용하여 incrementInteger
함수를 호출하려고하면 작동하지 않습니다. 당신의 incrementInteger
함수 내에서
$(document).ready(function() {
var firstNode = new Node();
firstNode.incrementInteger();
var secondNode = new Node();
});
function Node() {
this.integer = 0;
this.incrementInteger = function() {
this.integer++;
this.label.innerHTML = this.integer;
}
this.addButton = document.createElement("button");
this.addButton.addEventListener("mousedown", this.incrementInteger);
this.container = document.createElement("div");
this.label = document.createElement("div");
this.label.innerHTML = this.integer;
var bodyElement = document.getElementsByTagName("body")[0];
this.container.appendChild(this.label);
this.container.appendChild(this.addButton);
bodyElement.appendChild(this.container);
}
당신이 jQuery를 사용하는 경우, 왜 바닐라 JS 함께 물건을 관련된 모든 DOM을합니까? – prodigitalson
아래의 두 답변 중 하나가 작동합니다 (이 둘은 서로 다르므로 다른 것보다 효과적 일 수 있습니다). [이 링크] (https://developer.mozilla.org/en-US/docs/Web/)를 참조하십시오. JavaScript/Reference/Operators/this)를 참조하십시오. 짧은 버전은 'this'가 호출 컨텍스트를 기반으로 설정된다는 것입니다. – peterjb
고맙습니다. 필자는 솔루션을 본 후에 왜 작동하는지 궁금해서 제 것이 아니었고 귀하의 의견은 저의 혼란을 해결하는 데 도움이되었습니다. –