アイコンをクリックするとli要素を削除する機能があります。olが完全に空になったら、ユーザーが新しい要素をリストにドラッグ アンド ドロップできるように、 を少しオフのフィラー マテリアルolに置き換えたいと思います。(ショッピングカートの設定のようなものです。)lili
私が直面している問題は、jQuery を使用すると DOM から削除されますが、jQuery.remove()はli削除されないということです。したがって、たとえば、呼び出し.has(".li")はすべての li がなくなった場合でも true を返し、呼び出しはにこれまでに存在したことchildNodes.lengthのあるの総数を返します。コードは次のとおりです。liol
function onClick(element)
var parent = $(element).parent().attr('id');
$(element).remove();
var container = document.getElementById(parent);
console.log(container.childNodes.length); //always logs the total number that have ever existed
if(container.childNodes.length < 1){
parent.append("<li class='placeholder'>Drag and Drop Components Here</li>");
要素が DOM から削除された後にのみ親コンテナーを取得するように注意したため、これは問題ではないと確信しています。
何か案は?
編集: 要求さulれたli構造:
<h4>Components</h4>
<ol id="components" class="droppable">
<li class="placeholder">Drag and Drop Components Here</li>
</ol>
ユーザーは、次のコードをリストにドラッグ アンド ドロップします。これは$.get、一部の php スクリプトから取得されます。
<li id="$id"><table style="color:white"><tr><td>$this->longname</td>
<td><a href="#$id" onclick="destrComp(this);" title="Delete this image" class="ui-icon ui-icon-circle-close">Delete image</a></div></td></tr></table></li>
クリック ハンドラーは上記のコードです。