2016-08-16 6 views
0

私は同様の質問で回答を探してみましたが、私はエラーがjquery、DOM変換に起因することを知っていますが、私は問題を解決することができません、私はappend()を使用しようとしました。 appendChild();の代わりに。ドラッグアンドドロップ機能を実装しようとしています。解決できない:Uncaught TypeError: 'Node'で 'appendChild'を実行できませんでした:パラメータ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

'notecard'変数の値のidを持つ要素がないため、' document.getElementById(notecard) 'がnullを返すため、エラーになります。 'notecard'の価値は何ですか?削除しているファイルに後続の空白や改行がないか確認してください。 – Matt

答えて

0

理由はnotecardあるnodeされていません。

は、ソリューション、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の戻り値を確認してください。または、jsFiddleを提供してください。 –

+0

まだ例外が発生しています –

0

にいくつかの変更を行いますjsがロードされたときに要素が存在しませんでした。この問題を解決するためにDOMが作成された関数を呼び出しました。 Like '<div id="itemT'+j+'" name="task'+j+'" draggable="true" contenteditable class="cardTitle" ondragstart="dragS1(event)"></div>'

関連する問題