Onmousedown 이벤트 함수 처리가 외부 변수의 값을 가져올 수 없습니다.

가이 헤이건

내에서 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내가 몰랐 때 실행하고 예상 될 때 매개 변수없이 함수를 실행되고 있었다. 그럼 때 selectectedTextselectedCells는 처음에 정의되지 않았다 변수처럼 자신의 값이 정의되지 않은 결정에 변경된 기능에 따라 값으로 변경되었습니다.

변경 사항 :

cell.onmouseover = function() {
                variables = mouseOver(cell, selectedText, selectedCells, mousePressed);
                selectedText = variables[0];
                selectedCells = variables[1];
            }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

jQuery Ajax 입력 텍스트 및 파일이 성공 함수 처리 후 값을 가져올 수 없습니다.

분류에서Dev

Editable Circle onRadiusChanged 이벤트에서 반경 값을 가져올 수 없습니다.

분류에서Dev

변경 이벤트의 선택 목록에서 값을 가져올 수 없습니다.

분류에서Dev

외부 프로젝트에서 Bean을 가져올 수 없습니다.

분류에서Dev

파이프 내부에 설정된 쉘 변수의 정확한 값을 가져올 수 없습니다.

분류에서Dev

VBA 오류 처리 : 워크 시트 함수 클래스의 일치 속성을 가져올 수 없습니다.

분류에서Dev

이벤트의 "사용자"속성을 가져올 수 없습니다.

분류에서Dev

Scrapy-테이블의 값을 가져올 수 없습니다.

분류에서Dev

내가 if 문에서 그 변수를 사용하는 경우 이유는 외부 함수의 인수의 값을 덮어 쓸 수 없습니다?

분류에서Dev

외부 라이브러리에서 MediaPlayer를 가져올 수 없습니다

분류에서Dev

데이터를 가져올 수 없습니다. 처리되지 않은 거부 (TypeError) : 정의되지 않은 '0'속성을 읽을 수 없습니다.

분류에서Dev

붙여 넣기 이벤트에서 ExtJs 4.1의 textareafield 값을 가져올 수 없습니다.

분류에서Dev

텍스트 상자 값을 가져올 수 없습니다.

분류에서Dev

system.reflection이 속성 값을 가져올 수 없습니다.

분류에서Dev

Django : 이름 기본값을 가져올 수 없습니다.

분류에서Dev

HTML에서 테이블 값을 가져올 수 없습니다.

분류에서Dev

changeType이 "OTHER"인 셀 값을 가져올 수 없습니다.

분류에서Dev

루프에서 루프 외부의 배열로 푸시 할 값을 가져올 수 없습니다.

분류에서Dev

`MouseHover` 이벤트에서`MouseEventArgs`를 가져올 수 없습니다.

분류에서Dev

이벤트 뒤에 코드를 가져올 수 없습니다.

분류에서Dev

변수 값을 가져올 수 없습니다.

분류에서Dev

전역 변수 온도 값을 가져올 수 없습니다.

분류에서Dev

HTML 요소의 업데이트 된 값을 가져올 수 없습니다.

분류에서Dev

tensorflow에서 tensor의 업데이트 된 값을 가져올 수 없습니다.

분류에서Dev

Lua 함수에서 C 함수 반환 값을 가져올 수 없습니다.

분류에서Dev

외부 geojson에서 mapbox로 속성을 가져올 수 없습니다.

분류에서Dev

bash 함수-변수 내에서 함수 stdout 값을 가져오고 함수 외부의 변수를 수정합니다.

분류에서Dev

JQuery를 통해 외부 API 데이터를 가져올 수 없습니다.

분류에서Dev

컨텍스트에로드 된 외부 파일 속성을 가져올 수 없습니다.

Related 관련 기사

  1. 1

    jQuery Ajax 입력 텍스트 및 파일이 성공 함수 처리 후 값을 가져올 수 없습니다.

  2. 2

    Editable Circle onRadiusChanged 이벤트에서 반경 값을 가져올 수 없습니다.

  3. 3

    변경 이벤트의 선택 목록에서 값을 가져올 수 없습니다.

  4. 4

    외부 프로젝트에서 Bean을 가져올 수 없습니다.

  5. 5

    파이프 내부에 설정된 쉘 변수의 정확한 값을 가져올 수 없습니다.

  6. 6

    VBA 오류 처리 : 워크 시트 함수 클래스의 일치 속성을 가져올 수 없습니다.

  7. 7

    이벤트의 "사용자"속성을 가져올 수 없습니다.

  8. 8

    Scrapy-테이블의 값을 가져올 수 없습니다.

  9. 9

    내가 if 문에서 그 변수를 사용하는 경우 이유는 외부 함수의 인수의 값을 덮어 쓸 수 없습니다?

  10. 10

    외부 라이브러리에서 MediaPlayer를 가져올 수 없습니다

  11. 11

    데이터를 가져올 수 없습니다. 처리되지 않은 거부 (TypeError) : 정의되지 않은 '0'속성을 읽을 수 없습니다.

  12. 12

    붙여 넣기 이벤트에서 ExtJs 4.1의 textareafield 값을 가져올 수 없습니다.

  13. 13

    텍스트 상자 값을 가져올 수 없습니다.

  14. 14

    system.reflection이 속성 값을 가져올 수 없습니다.

  15. 15

    Django : 이름 기본값을 가져올 수 없습니다.

  16. 16

    HTML에서 테이블 값을 가져올 수 없습니다.

  17. 17

    changeType이 "OTHER"인 셀 값을 가져올 수 없습니다.

  18. 18

    루프에서 루프 외부의 배열로 푸시 할 값을 가져올 수 없습니다.

  19. 19

    `MouseHover` 이벤트에서`MouseEventArgs`를 가져올 수 없습니다.

  20. 20

    이벤트 뒤에 코드를 가져올 수 없습니다.

  21. 21

    변수 값을 가져올 수 없습니다.

  22. 22

    전역 변수 온도 값을 가져올 수 없습니다.

  23. 23

    HTML 요소의 업데이트 된 값을 가져올 수 없습니다.

  24. 24

    tensorflow에서 tensor의 업데이트 된 값을 가져올 수 없습니다.

  25. 25

    Lua 함수에서 C 함수 반환 값을 가져올 수 없습니다.

  26. 26

    외부 geojson에서 mapbox로 속성을 가져올 수 없습니다.

  27. 27

    bash 함수-변수 내에서 함수 stdout 값을 가져오고 함수 외부의 변수를 수정합니다.

  28. 28

    JQuery를 통해 외부 API 데이터를 가져올 수 없습니다.

  29. 29

    컨텍스트에로드 된 외부 파일 속성을 가져올 수 없습니다.

뜨겁다태그

보관