내에서 cell.onmousedown
기능 때 console.log(cell)
그것은 내가하려고하지만 경우 외부 함수에 정의 된 셀의 값을 반환 console.log(something else)
처럼 selectedText
그것은 그 반환 selectedText
입니다 undefined
이미 비슷한 코딩 할 때 전에 나를 위해 일 해왔다 외부 기능에 정의에도 불구하고. 누구든지 여기서 문제가 무엇인지 볼 수 있습니까?
다음은 그리드를 생성하고 그리드의 div를 누를 때 이벤트를 처리하는 기능입니다.
function createGrid(rows, cols) {
let mousePressed = false;
let wordsFound = 0;
let selectedText = '';
let selectedCells = [];
let variables = [];
grid.style.setProperty('--grid-rows', rows);
grid.style.setProperty('--grid-cols', cols);
for (var row = 0; row < rows; row++) {
for (var column = 0; column < cols; column++) {
let cell = document.createElement('div');
cell.innerText = randomChoice(alphabet);
cell.id = `${column} ${row}`;
cell.onmousedown = function() {
console.log(cell)
console.log(selectedText)
variables = mouseDown(cell, selectedText, selectedCells);
selectedText = variables[0];
selectedCells = variables[1];
mousePressed = variables[2];
}
cell.onmouseover = function() {
variables = mouseOver();
selectedText = variables[0];
selectedCells = variables[1];
}
cell.onmouseup = function() {
variables = mouseUp(cell, selectedText, selectedCells);
selectedText = variables[0];
selectedCells = variables[1];
mousePressed = variables[2];
}
grid.appendChild(cell).className = 'grid-item';
}
}
}
문제를 해결 한 것 같습니다. 는 onmouseover
내가 몰랐 때 실행하고 예상 될 때 매개 변수없이 함수를 실행되고 있었다. 그럼 때 selectectedText
와 selectedCells
는 처음에 정의되지 않았다 변수처럼 자신의 값이 정의되지 않은 결정에 변경된 기능에 따라 값으로 변경되었습니다.
변경 사항 :
cell.onmouseover = function() {
variables = mouseOver(cell, selectedText, selectedCells, mousePressed);
selectedText = variables[0];
selectedCells = variables[1];
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다