ネストされた並べ替え可能なリストを含む jquery .sortable リストで「beforeStop」関数を使用しようとすると、次の JavaScript エラーが発生します。
Uncaught TypeError: Cannot call method 'removeChild' of null
私が見た他のサイトに基づいて、私のアイテムが実際にその下にネストされたソート可能なリストを持っている可能性があります...そして、ソート可能なリストをキャンセルしようとすると、ネストされたリストが好きではありません. エラーをスローすることは別として、それでも問題なく動作しているように見えますが、それでもエラーを回避したいと思います。
他の解決策を試しましたが、他の方法では状況をうまく処理できないようです。「キャンセル」または「アイテム」オプションは機能しません (メイン リスト内でこれらをソート可能にする必要があります)。アイテムが混在しているため (一部は他のリストに移動でき、一部は移動できません)、包含プロパティも機能しません。 )。
私は本当に別の解決策を見つけようとしていますが、アイデアがありません...他に提案はありますか? 私が本当に欲しいのは、ソート可能なアイテム内に特定のクラスを持つアイテムがコンテナを離れないようにすることです。「forceContainment: .specialItems」のプロパティか何かのように。
ここに、私が話していることを示す jsFiddle があります: http://jsfiddle.net/dataweb/28nMJ/37/
出力の javascript エラー/コンソールを確認すると、エラーがスローされていることがわかります。
HTML:
<p>sublists shouldn't be able to be dragged out of their normal list</p>
<ul id="list1" class='mainlist'>
<li>One (a)</li>
<li>Two (a)</li>
<li class="hasItems">Three (a)
<ul class="sublist">
<li>subitem1-1</li>
<li>subitem1-2</li>
<li>subitem1-3</li>
<li>subitem1-4</li>
</ul>
</li>
<li>Four (a)</li>
<li class="hasItems">Five (a)
<ul class="sublist">
<li>subitem2-1</li>
<li>subitem2-2</li>
<li>subitem2-3</li>
<li>subitem2-4</li>
</ul>
</li>
</ul>
<ul id="list2" class='mainlist'>
<li>1</li>
<li>Two (b)</li>
<li>Three (b)</li>
</ul>
JavaScript:
$('ul.mainlist').sortable({
connectWith: 'ul.mainlist',
beforeStop: function(ev, ui) {
if ($(ui.item).hasClass('hasItems') && $(ui.placeholder).parent()[0] != this) {
$(this).sortable('cancel');
}
}
});
$('ul.sublist').sortable({
connectWith: 'ul.sublist'
});
ヘルプやフィードバックをいただければ幸いです。