2016-08-16 3 views
0

비슷한 질문에서 답을 찾으려고했지만 해결할 수 없습니다. 오류가 jquery, DOM 변환으로 인해 발생하지만 문제를 해결할 수 없다는 것을 알고 append()를 사용하려고했습니다. appendChild(); 대신. 드래그 앤 드롭 기능을 구현하려고합니다. (주석으로 내가 시도했던 방법입니다)해결할 수 없음 : Uncaught TypeError : 'Node'에서 'appendChild'를 실행하지 못했습니다. 매개 변수 1의 유형이 'Node'가 아닙니다.

$('#todo, #inprog').bind('drop', function(event) { 
    var notecard = event.originalEvent.dataTransfer.getData("text/plain"); 
    event.target.appendChild(document.getElementById(notecard)); 
    // var c = $(document.getElementById(notecard))[0]; 
    // var c = $('#notecard')[0]; 
    //event.target.innerHTML = document.getElementById(notecard); 
    //event.target.append(notecard); 
    //$(event.target).append(document.getElementById(notecard)); 
    //$(event.target).append('#notecard'); 
    //$('#notecard').appendTo(event.target); 
    event.preventDefault(); 
}); 
+0

'notecard' 변수의 id 값을 가진 요소가 없기 때문에'document.getElementById (notecard)'가 null을 반환하기 때문에 오류가 발생합니다. 'notecard'의 가치는 무엇입니까? 삭제할 파일에서 뒤 공백/새 줄을 확인하십시오. – Matt

답변

0

이유는 notecardnode되지이다 :

내 자바 스크립트입니다.

솔루션의 DOM 객체가 동적으로 생성 된 요소로드되지 않았습니다 그리고 내가 그렇게 event.originalEvent.dataTransfer.getData("text/plai‌​n");이 같은이 null을 반환했다가 생성되기 전에 JS 함수를 호출 한 발견 코드

$('#todo, #inprog').bind('drop', function(event) { 
    var notecardText = event.originalEvent.dataTransfer.getData("text/plain"); 
    var notecard = document.createElement("div"); // Create a node first, div or p or span 
    notecard.appendChild(notecardText) // append your text to the node 
    event.target.appendChild(document.getElementById(notecard)); 
    event.preventDefault(); 
}); 
+0

아직 해결되지 않았지만 오류가 없습니다. 작동하지 않습니다. –

+0

그래서이 문제가 해결되었습니다. 'event.originalEvent.dataTransfer.getData ("text/plain");'null 또는 null의 반환 값을 확인하십시오. 또는 jsFiddle을 제공하십시오. –

+0

여전히 예외가 발생합니다. –

0

에 약간의 변화를 수행 js가로드 될 때 요소가 존재하지 않았습니다. 이 문제를 해결하기 위해 DOM을 만든 함수를 호출했습니다. Like '<div id="itemT'+j+'" name="task'+j+'" draggable="true" contenteditable class="cardTitle" ondragstart="dragS1(event)"></div>'

관련 문제