2016-07-18 7 views
1

私はブートストラップ3を使用してレンダリングされるdivボックスが多数あるページがあります。 (:データ並べ替え可能= "箱-1"、データ並べ替え可能= "箱-2" などEX)jquery sortable( 'toArray')要素が別の配列に属している場合のみ

しかしこれを行う:私はソート可能にする各div要素は、特定のデータ - 属性を持つ

$(".connectedSortable").sortable({ 
    placeholder: "sort-highlight", 
    connectWith: ".connectedSortable", 
    handle: ".box-header, .nav-tabs", 
    forcePlaceholderSize: true, 
    zIndex: 999999, 
    stop: function(event, ui) { 
    var columns = []; 
     $(".ui-sortable").each(function(){ 
      columns.push($(this).sortable('toArray').join(',')); 
     }); 
    } 
}); 

は、配列内に他のdivを追加します。スタティックdivの中には、他の場所で処理する独自のミニソート可能なアイテムがあるためです。 どういうわけかそれらを分けて、特定のデータソート可能なタグを持つdivだけを挿入したいと思います。これにより

$(".row").each(function(){ 
    var divsWithTag = $(this).find('[data-sortable]'); 
} 

私は私が望むすべてのdivを得ることができます。私はここに、このライン

columns.push($(this).sortable('toArray').join(',')); 

がdivsWithTag変数内の要素に一致するだけのdivをプッシュするを微調整することができます方法はありますか?

+0

あなたは 'columns.pushのような意味;'、そうでない場合は($(この).filter( '[データソート可能]')ソート可能な( 'のtoArray')に参加( '')。。):誰もがそれをテストできるようにhttps://jsfiddle.net/を追加できますか?そのカスタム属性を使用して – fehrlich

+0

たぶん( "UI-ソート可能")ラインに '$をフィルタリングする。各(関数(){' 。 jsfiddleは役立つだろう。 –

+0

ええそのようなことを!この1つは$を返しますが、 (...)。フィルタ(...)sortable(...)。joinは関数ではありません。 フィドルは難しいでしょう。私はそれを可能にするかどうか尋ねていたのですが、それでフィルタはそれを行うことができますか? – user1033882

答えて

1

filterを使用し、toArrayがid-sの配列を返すことを考慮してください。以下は、.attr()値がブール値に強制されています

finalColumns.push($(this).sortable('toArray').filter(function(id) { 
    return $('#'+id).attr('data-sortable'); 
}).join(',')); 

または(元のコメントのように).isを使用する代わりに、IDの一致/元々属性一致コレクションは一度だけ/

を見上げたことだろうと思いました

http://jsfiddle.net/h8h9u0k7/3/

+0

素晴らしい...これは完璧に働いています。ありがとう! 最初にすべてのデータソート可能なIDを取得して比較する必要はありません.1回の呼び出しでそれを行います。 – user1033882

関連する問題