2016-08-16 2 views
0

Я попытался найти ответ в подобных вопросах, но я не могу его решить, Я знаю, что ошибка связана с jQuery, преобразованием DOM, но я не могу исправить проблему, я попытался использовать append(); вместо appendChild() ;. Я пытаюсь реализовать функции перетаскивания.Невозможно разрешить: Uncaught TypeError: Не удалось выполнить 'appendChild' в 'Node': параметр 1 не имеет тип 'Node'

Это мой JavaScript: (Закомментированный это методы, я пытался)

$('#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

Ошибка будет вызвана тем, что 'document.getElementById (notecard)' возвращает значение null, потому что нет элемента с идентификатором значения переменной «notecard». Какова ценность 'notecard'? Проверьте, нет ли каких-либо конечных пробелов/новых строк в файле, который вы уронили. – Matt

ответ

0

Причина в том, notecard не является node.

ли какие-то изменения в коде

$('#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 или нет. Или предоставить jsFiddle –

+0

Я все еще получаю исключение –

0

Найдено решение, объект DOM не был загружен для элементов, созданных динамически, и я звоню функцию JS, прежде чем они созданы так event.originalEvent.dataTransfer.getData("text/plai‌​n"); возвращавшегося нуль, как там при загрузке js элемент не присутствовал. Я вызвал функцию, где DOM был создан для решения проблемы. '<div id="itemT'+j+'" name="task'+j+'" draggable="true" contenteditable class="cardTitle" ondragstart="dragS1(event)"></div>'

Смежные вопросы