2012-03-24 7 views
0

私はこのページをローカルで開発していますので、残念ながら例は表示できませんが、jQueryモバイルの2つの "リスト"ビルドがあります。jQuery:並べ替えが可能でネストされていますが、連続ではありません

jquery UIプラグインを使用して、両方のリストをソート可能にします。

それは次のようになります。

<div class="sortable"> //1st sortable wrapper 
    <div> //list item for 1st sortable wrapper 
    <div> 
    <div> 
     <div class="sortable"> //2nd sortable list wrapper 
     <div> //list item for 2nd sortable wrapper 

をそれから私は、だから私は基本的に2つの独立したsortablesを持って

jQuery(".sortable").sortable() 

を呼んでいます。第1セットのソート可能物の中の1セットのソート可能物。各グループは、ソート可能な他のセットとは独立している必要があります。

2つ目のソート可能なセットがページに動的に追加されることはありません。

追加した後、私は無駄に

jQuery(".sortable").sortable('refresh') 

を呼び出しています、動的に追加されているsortablesの第二セットはソートされることはありません。私がそれらを試してドラッグすると、親の.sortableが代わりにドラッグします。

私が見ているすべてのプラグインは、要素が次の直後にあるものとします。

これについてのご意見はありますか?

答えて

0

jQuery-ui-sortableファイル開発版です。

変更:

if(itemElement != this.currentItem[0] //cannot intersect with itself 
      && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before 
      && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked 
      && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true) 
      //&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container 
     ) 

へ:

この占めラインがあり

if(itemElement != this.currentItem[0] //cannot intersect with itself 
      && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before 
      && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked 
      && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true) 
      && itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container 
     ) 

Basciallyは、最後の行にコメントを削除します。

関連する問題