0

タイトルはかなり自明だと思います。データベースから製品を取得するphpコードから生成された多くのdivがあります。問題は、2 つのコンテナー (また、div) 間でそれらをドラッグするときです。製品の div id が同じであり、コンテナー 1 からの繰り返しとして使用されるため、すべてを最初のコンテナーに戻すことができません。 2 --> 1.(2 つのコンテナがあり、すべての製品 div が同じ ID を持っています)。製品の div ID に +1 を追加することでこれを解決できますが (ID が異なるため)、CSS の ID を使用できません。解決策はありますか?ここにjsコードがあります

<script type="text/javascript">
            function allowDrop(ev){
                ev.preventDefault();
                }
            function drag(ev){
                ev.dataTransfer.setData("Text",ev.target.id);
                }
            function drop(ev){
                if (ev.target.id == "container"){
                var data=ev.dataTransfer.getData("Text");
                ev.target.appendChild(document.getElementById(data));
                ev.preventDefault();
                }}
        </script>

前もって感謝します

4

3 に答える 3

1

同じ ID を持つ 2 つの div を持つことはできません。クラスを使用してみてください。

関数drop()は次のようになります。

function drop(ev){
   if ( ev.hasClass('container') ) {
            // do some stuff
   }
}

jQuery.addclass()メソッドを使用してクラスを動的に追加できます。

于 2012-05-13T10:44:51.103 に答える
1

HTML が有効であるためには、ID が一意である必要があります。ID を複製すると、奇妙なことが起こります。1 つのブラウザーでなんとか動作させたとしても、他のブラウザーでは処理が異なる場合があります。代わりにクラスを使用してみることができます。

于 2012-05-13T10:46:59.567 に答える
0

PHPによって生成されたdivのインクリメントされたIDを使用してこれを解決しました。しかし、これは私が望んでいた解決策の 1 つではありませんでした。助けてくれてありがとう

于 2012-05-14T17:49:06.590 に答える