4

私はliで多くのULを持っています。異なる UL には、同じ ID を持つ li があります。

<ul>
 <li id='1'>this</li>
 <li id='2'>that</li>
</ul>

<ul>
 <li id='1'>this</li>
</ul>

ユーザーはリストから別のリストに li をドラッグできますが、同じ ID を持つ li が存在しない場合に限ります。これまでのところ、私はこれを持っています:

$(".container").droppable({
        drop: function (event, ui) {
            var a = $(this).find("li").attr("id", $(ui.draggable).attr('id'));
            if (a.length == 0) {
                $.ajax({
                    ...
                });
            }                
        }
    });

ただし、ドラッグ可能なものをドロップすると、すべての li の id がドロップされた li の値に変更されます。

どんなガイダンスも素晴らしいでしょう。ありがとう。

4

2 に答える 2

7

ID は数字で始めることはできず、一意である必要があります。一意でない識別子については、クラスを使用します。

次のように要素が存在するかどうかを確認できます。

if($('#myDIV').length) {

}
于 2011-04-13T13:06:46.917 に答える
1

を使用することで、呼び出しに一致する要素attr()の属性を実際に設定しています。照合する IDで使用する必要があります。idfind()find

$(".container").droppable({
    drop: function (event, ui) {
        var a = $(this).find("#" + $(ui.draggable).attr('id'));
        if (a.length === 0) {
            $.ajax({
                ...
            });
        }                
    }
});

また、@Diodeus が言及しているように、ID は数字で始めるべきではありません。また、ドキュメント全体で一意である必要があるため、ID の重複/期待が必要な場合は、HTML5 データ属性などの別の属性を使用することをお勧めします: http://ejohn.org/blog/html-5-data-属性/

于 2011-04-13T13:11:53.903 に答える