0

1 つのタイトルで説明するのは少し難しいですが、基本的には、親の動的クラスに基づいて子要素に動的クラスを追加しています。そう追加:

$('ul').each(function(key){
    if ($(this).hasClass('sortable')){
        $(this).addClass('parent' + key);
        $(this).children().addClass('parent' + key);
    };
});

この後の構造は非常に単純です。

<ul class="parent0">
    <li class="parent0">
        <ul class="parent1">
            <li class="parent1"></li>
        </ul>
    </li>
</ul>

これで、UI はユーザーにこれらの li を親の外に移動させ、別の場所に配置させます。後で、要素をチェックして、対応する (元の) 親に一致させたいと思います。親から移動されるため、$(this) 親にすることはできませんが、クラスはまだ残っています。

したがって、チェックは .parent(n) を探し、次に .parent(n) で ul を見つけます。最終的にこのコードは内部に存在します:

$('sortable li').appendTo($('THIS-IS-THE-DYNAMIC-CLASS'));

したがって、検索はこれより前になると想定していますが、それを書く方法がわかりません。

4

1 に答える 1

1

完全に一意になるように、クラス以外の別の属性を使用します。$(this).dataまたはを使用します$(this).attr。また、ID を親 (または別の属性) に割り当てることをお勧めしますが、これも完全に一意にすることができます。これにより、私の意見では物事がきれいに保たれます。

例えば...

仮定:

$(this).attr('parentClass', '.parent' + key);

それから

$('.sortable li').each(function() { $(this).appendTo($(this).attr('parentClass')); });
于 2012-12-05T19:36:26.313 に答える