編集:
完全に機能するデモ:
Huuuh :)完了しました!
ULをアルファベット順にソートする方法についてWeb全体を検索しています。しかし、結果はありません。
使い方:
- 既存のすべての映画をFIRSTに複製しました(アクションリンクを押した後、正しいものを取得するために、以前のようにこれ以上魔法
.slide
を使用する必要はありません)index -1
.slide
- 関数'sorty'を作成しました:)
- すべての
li
映画名.data()
を各親要素のjQueryに取得しましたul
- 現在、グリッド
ul
は映画の名前を保持しています。
ul
最初にすべてアルファベット順にソート.slide
- できます!
if
'all'リンクのチェック
を削除したのではなく、jQueryからCSSにコードを移動したことがわかります(//追加!でマークされています) 。'info' jQueryを保持するプロパティを
HTMLに追加すると、このスライドに複製された要素が入力されます。
そして、jQueryセレクターを使用して、定義された要素を除くすべての要素を取得しました
(つまり、インデックス「0」よりも大きいすべての要素を使用すると、赤いテキストが表示されます。最初の要素だけがデフォルトの色になります)。
.slide
:gt()
$('.element:gt(0)').css({color:'red'});
ご不明な点がございましたら、お気軽にお問い合わせください。
数行で次のようになります。
$('.grid:gt(0)').find('ul:eq(0)').fadeOut(0); // hide titles (not from the first .grid (:eq(0)))
$('.grid:gt(0) ul:visible:not(:eq(0))').clone().appendTo( $('.grid:eq(0)') ); // after we hided all the titles - clone all UL elements to our first .slide
$('.slide:gt(0)').hide();
function sorty() { // sort UL elements by holding data (the data will be the movie name! )
$('.grid:eq(0) ul:gt(0)').each(function() {
var txt1 = $(this).children('li:eq(0)').text();
$(this).data('name', txt1);
});
var items = $('.grid:eq(0) ul');
items.sort(function(a, b) {
var charA = $(a).data('name');
var charB = $(b).data('name');
if (charA < charB) return -1;
if (charA > charB) return 1;
return 0;
});
var grid = $('.grid:eq(0)');
$(grid).append(items);
$('.grid:gt(0)').find('ul:eq(0)').show(); // redo visibility for infos.
}
sorty(); // run sorty!
$('ul.nav li').click(function() {
$(this).addClass('btnSelect').siblings().removeClass('btnSelect');
var i = $(this).index();
$('.slide:visible').fadeOut(400, function() {
$('.slide:eq(' + i + ')').fadeIn(400);
});
});