일반 자바 스크립트를 사용하여 그리드의 상자 안에 십자 기호를 끌어서 놓으시겠습니까?

남자

나는 누군가가 상자를 클릭하면 x 기호를 그리고 이미있는 상자를 클릭하면 x그것을 제거 하는 HTML에서 격자 상자를 만들었습니다 x.

체크 아웃 이 데모를 .

문제 설명:-

  • 이제이 십자 기호 (x)를 내 상자의 다른 그리드로 끌고 싶지만 십자 기호를 이미있는 상자로 끌려고하면 작업이 취소되어야합니다.

HTML과 일반 자바 스크립트 만 사용하여 어떻게 할 수 있습니까?

라 디프

JSFiddle 작동 : http://jsfiddle.net/wz4hs9qa/2/

다음은 코드 변경 사항입니다.

1) 각 셀에 id인덱스에 해당 하는 값을 부여했습니다.

cell.id = "cell_" + i;

2) 오타 수정 :

on_drop.value = "drop(event, this)";

3) ondragover속성을 셀 내부의 X가 아닌 셀로 이동 했습니다. 이것은 빈 셀에서 드롭을 활성화해야하기 때문에 중요합니다.

var on_dragover = document.createAttribute('ondragover');
on_dragover.value = "allowDrop(event, this)";
cell.setAttributeNode(on_dragover);

4)

a) 각 X를 id포함하는 셀과 비슷하게 지정하여 drop이벤트 핸들러가 X를 이동할 때 지울 셀을 알 수 있도록합니다.

b) ondragstart인덱스를 끌어서 놓기 dataTransfer개체에 저장 하는 처리기를 설정 합니다. 이 코드는 최신 브라우저 (MIME 유형 사용)와 이전 버전의 IE ( "텍스트"사용) 모두에서 작동하도록 설계되었습니다.

function createX(obj){
    if (obj.innerHTML == ''){
        var id = obj.id.replace("cell", "X");
        obj.innerHTML = "<h1 id='" + id + "' style='text-align:center;' draggable='true' ondragstart='saveCell(event, this);'>X</h1>";
    } else {
        obj.innerHTML = "";
    }
}

function saveCell(ev, obj) {
    var cell_index = obj.id.substring(2);
    try {
        ev.dataTransfer.setData("text/plain", cell_index);
    } catch (exception) {
        ev.dataTransfer.setData("text", cell_index);
    }
}

5) 현재 원하는 동작과 일치하지 않기 때문에 모든 드롭에서 X를 지우는 줄을 제거했습니다.

function allowDrop(ev, obj) {
    ev.preventDefault();
    //obj.innerHTML = '';
}

6) 여기에 코드 추가 drop():

a)이 셀에 이미 X가 있는지 확인합니다 (있는 경우 삭제 취소).

b)이 셀에 X를 넣습니다.

c) dataTransfer개체 에서 셀 인덱스를 읽고 이를 사용하여 드래그가 시작된 셀을 지 웁니다.

function drop(ev, obj) {
    ev.preventDefault();

    if (obj.innerHTML !== '') { // not empty
        return false;
    } else {
        createX(obj);
    }

    var data;
    try {
        data = ev.dataTransfer.getData("text/plain");
    } catch (exception) {
        data = ev.dataTransfer.getData("text");
    }
    var cell_id = "cell_" + data;
    document.getElementById(cell_id).innerHTML = '';
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

일반 자바 스크립트를 사용하여 그리드의 상자 안에 십자 기호를 끌어서 놓으시겠습니까?

분류에서Dev

자바 스크립트를 사용하여 HTML에서 동일한 <div>의 수를 계산하십시오.

분류에서Dev

자바 스크립트를 사용하여 html 태그 안에 html 태그를 만드시겠습니까?

분류에서Dev

자바 코드에서 웹 사이트의 자바 스크립트 함수를 호출 하시겠습니까?

분류에서Dev

자바 스크립트의 배열에서 배열로 일치하는 문자열 수를 찾으십니까?

분류에서Dev

자바 스크립트에서 유니 코드 끌어서 놓기 문제

분류에서Dev

스크롤에서 자바 스크립트를 사용하여 CSS의 상자 그림자 변경

분류에서Dev

WebView에서 로컬 자바 스크립트를로드 하시겠습니까?

분류에서Dev

자바 스크립트를 사용하여 입력 필드 텍스트 상자에서 여러 단어 확인

분류에서Dev

자바 스크립트를 사용하여 레일에서 API 요청 값을 자동으로 반환

분류에서Dev

텍스트 상자를 사용하여 계산에서 가치를 얻습니까? 자바 스크립트

분류에서Dev

최소 코드에서 자바 스크립트를 사용하여 문자열에있는 모든 단어의 첫 글자를 반환합니다.

분류에서Dev

자바 스크립트에서이 컨텍스트가 다른 동일한 "클래스"의 다른 메서드를 호출 하시겠습니까?

분류에서Dev

자바 스크립트를 사용하여 클라이언트 측의 목록보기에서 모든 체크 박스를 선택하십시오.

분류에서Dev

자바 스크립트에서 창 크기를 조정 하시겠습니까?

분류에서Dev

MFC없이 Visual Studio에서 UI 디자이너를 끌어서 놓으시겠습니까?

분류에서Dev

일반 자바 스크립트를 사용하여 루프에서 여러 div 애니메이션

분류에서Dev

자바 스크립트에서 2 개 이상의 라디오 버튼의 코드를 확인하십시오.

분류에서Dev

끌어서 놓기 중에 표시되는보기를 사용자 정의하려면 어떻게합니까?

분류에서Dev

자바 스크립트를 사용하여 일반 <img> 태그에서 이미지 데이터를 가져올 수있는 방법이 있습니까?

분류에서Dev

HTML에서`<link />`를 사용하여 동적 자바 스크립트`import (modules)`를 미리로드 하시겠습니까?

분류에서Dev

R을 사용하여 웹에서 자바 스크립트 로딩 데이터를 다운로드 하시겠습니까? 까다로운 웹 스크래핑

분류에서Dev

자바 스크립트에서 Regex를 사용하여 십진수 검사

분류에서Dev

드롭 다운을 기반으로 keyinput의 텍스트 상자에서 다른 텍스트 상자로 텍스트를 복사 하시겠습니까?

분류에서Dev

자바 스크립트를 사용하여 JSP에서 itemLabel의 값을 어떻게 얻을 수 있습니까?

분류에서Dev

자바 스크립트에서 ID를 사용하여 텍스트 상자의 값을 얻는 방법

분류에서Dev

자바 스크립트를 사용하여 링크에서 파일 자동 다운로드

분류에서Dev

Google 스크립트를 사용하여 Google 양식에서 스프레드 시트로 전화 번호 문자열을 이메일 초안으로 포맷

분류에서Dev

for 루프를 사용하여 자바 스크립트에서 여러 텍스트 상자를 만드는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    일반 자바 스크립트를 사용하여 그리드의 상자 안에 십자 기호를 끌어서 놓으시겠습니까?

  2. 2

    자바 스크립트를 사용하여 HTML에서 동일한 <div>의 수를 계산하십시오.

  3. 3

    자바 스크립트를 사용하여 html 태그 안에 html 태그를 만드시겠습니까?

  4. 4

    자바 코드에서 웹 사이트의 자바 스크립트 함수를 호출 하시겠습니까?

  5. 5

    자바 스크립트의 배열에서 배열로 일치하는 문자열 수를 찾으십니까?

  6. 6

    자바 스크립트에서 유니 코드 끌어서 놓기 문제

  7. 7

    스크롤에서 자바 스크립트를 사용하여 CSS의 상자 그림자 변경

  8. 8

    WebView에서 로컬 자바 스크립트를로드 하시겠습니까?

  9. 9

    자바 스크립트를 사용하여 입력 필드 텍스트 상자에서 여러 단어 확인

  10. 10

    자바 스크립트를 사용하여 레일에서 API 요청 값을 자동으로 반환

  11. 11

    텍스트 상자를 사용하여 계산에서 가치를 얻습니까? 자바 스크립트

  12. 12

    최소 코드에서 자바 스크립트를 사용하여 문자열에있는 모든 단어의 첫 글자를 반환합니다.

  13. 13

    자바 스크립트에서이 컨텍스트가 다른 동일한 "클래스"의 다른 메서드를 호출 하시겠습니까?

  14. 14

    자바 스크립트를 사용하여 클라이언트 측의 목록보기에서 모든 체크 박스를 선택하십시오.

  15. 15

    자바 스크립트에서 창 크기를 조정 하시겠습니까?

  16. 16

    MFC없이 Visual Studio에서 UI 디자이너를 끌어서 놓으시겠습니까?

  17. 17

    일반 자바 스크립트를 사용하여 루프에서 여러 div 애니메이션

  18. 18

    자바 스크립트에서 2 개 이상의 라디오 버튼의 코드를 확인하십시오.

  19. 19

    끌어서 놓기 중에 표시되는보기를 사용자 정의하려면 어떻게합니까?

  20. 20

    자바 스크립트를 사용하여 일반 <img> 태그에서 이미지 데이터를 가져올 수있는 방법이 있습니까?

  21. 21

    HTML에서`<link />`를 사용하여 동적 자바 스크립트`import (modules)`를 미리로드 하시겠습니까?

  22. 22

    R을 사용하여 웹에서 자바 스크립트 로딩 데이터를 다운로드 하시겠습니까? 까다로운 웹 스크래핑

  23. 23

    자바 스크립트에서 Regex를 사용하여 십진수 검사

  24. 24

    드롭 다운을 기반으로 keyinput의 텍스트 상자에서 다른 텍스트 상자로 텍스트를 복사 하시겠습니까?

  25. 25

    자바 스크립트를 사용하여 JSP에서 itemLabel의 값을 어떻게 얻을 수 있습니까?

  26. 26

    자바 스크립트에서 ID를 사용하여 텍스트 상자의 값을 얻는 방법

  27. 27

    자바 스크립트를 사용하여 링크에서 파일 자동 다운로드

  28. 28

    Google 스크립트를 사용하여 Google 양식에서 스프레드 시트로 전화 번호 문자열을 이메일 초안으로 포맷

  29. 29

    for 루프를 사용하여 자바 스크립트에서 여러 텍스트 상자를 만드는 방법은 무엇입니까?

뜨겁다태그

보관