5

ノックアウトソート可能リストがあり、その中にノックアウトソート可能リストがあります。基本的に、これは基本的な「利用可能な学生」の例(http://jsfiddle.net/rniemeyer/UdXr4/)ですが、テーブルも並べ替え可能にしたいだけです。

私はこれをほとんど機能させていますが、テーブルを他のテーブルにドラッグできないという問題があります。

生徒がテーブルリストにドロップされないように、テーブルリストにallowDrop関数を追加することができました。

        this.isTable = function(arg) {
            return arg.sourceParent != undefined;
        };

だから私は学生リストにテーブルを入れられないようなものを入れたいと思っていましたが、私の人生ではそれを理解することはできません。私はIDを調べたり、性別のプロパティが利用可能かどうかを確認したりしました(学生のみが使用できるため)。

jsfiddleを編集して、自分の状況に近づけました。テーブルをドラッグすると、別のテーブルにドロップできることがわかります。 http://jsfiddle.net/nYSLq/1/

どんな助けや提案も大歓迎です。

4

1 に答える 1

5

この種の場合は、connectClassオプションを使用することをお勧めします。これは、アイテムをドロップできるコンテナのタイプを分類するのに役立ちます。

だから、あなたはすることができます:

<div id="main" data-bind="sortable: { data: tables, connectClass: 'tables' }">
    <div class="table">
        <div data-bind="text: students.id"></div>
        <div class="seats" data-bind="sortable: { data: students, allowDrop: $root.isTableFull, connectClass: 'students'  }">
            <div class="student" data-bind="text: name"></div>
        </div>
    </div>
</div>

プラグインは、そのクラスを適切な要素に割り当てていることに注意してください。

これで、生徒は生徒とのみ並べ替えられ、テーブルは一緒に並べ替えられるだけになります。

これは、不要な余分な部分を取り除いた更新されたフィドルです:http: //jsfiddle.net/rniemeyer/7yA2s/

于 2012-12-07T22:52:33.977 に答える