2013-07-16 12 views
0

這裏是我可憐的代碼:http://jsfiddle.net/jesspoub/gjDcd/更改可排序的jQuery UI列表中的CSS不是那麼簡單?

我想只有在名單藍色和其他所有 在紅色的五個第一項。實際上,如果您拖動「sortable1」中的所有項目,則所有項目都會改變顏色。我需要僅保留藍色的第一個項目位置。 我newbe用jQuery所以任何幫助將非常感激..

    <script> 
$(function() { 
$("#sortable1, #sortable2").sortable({ 
connectWith: ".connectedSortable"}).disableSelection();}); 
       </script> 

THX, 傑西卡

+0

看到答案傑斯和rememeber標記爲你工作的答案;)這是在左邊打鉤的答案;) –

回答

0

試試這個jsFiddle example

$("#sortable1 li").addClass('green'); 
$("#sortable2 li").addClass('red'); 
$("#sortable1, #sortable2").sortable({ 
    connectWith: ".connectedSortable", 
    stop: function() { 
     var lis = $('#sortable1 li').add('#sortable2 li'); 
     $(lis).each(function() { 
      if ($(this).index('li') <= 4) { 
       $(this).removeClass('red ui-state-highlight').addClass('green ui-state-default'); 
      } else { 
       $(this).removeClass('green ui-state-default').addClass('red ui-state-highlight'); 
      } 
     }); 
    } 
}).disableSelection(); 
+0

謝謝你們!這兩個解決方案的工作,不知道什麼是更好的:d – jess

+0

你總是可以upvote,然後選擇一個。 – j08691

0

使用:lt:gt選擇,添加/上sortableupdate這樣除去顏色class

$(function() { 
    $("#sortable1, #sortable2").sortable({ 
     connectWith: ".connectedSortable", 
     update: function() { 
      $('li:lt(5)').removeClass('color1 color2').addClass('color1'); 
      $('li:gt(4)').removeClass('color1 color2').addClass('color2'); 
     } 
    }).disableSelection(); 

    $('li:lt(5)').addClass('color1'); 
    $('li:gt(4)').addClass('color2'); 
}); 

jsFiddle

+0

或只是使用CSS;) –

+0

謝謝你們!這兩個解決方案的工作,不知道什麼是更好的 – jess

+0

所有的解決方案工作,不知道什麼是它的更好,但很多謝謝你的幫助和解釋傑西卡 – jess

0

排序(雙關)你的問題。

基本上我只是使用css來使用'下一個兄弟'與第一個孩子僞代碼選擇器和一個有5個級別的規則來設計列表的樣式。

working fiddle

和CSS是:

#sortable1 li, #sortable2 li { 
margin: 0 5px 5px 5px; 
padding: 5px; 
font-size: 1.2em; 
width: 160px; 
color:red; 
} 

#sortable1 li:first-child, 
#sortable1 li:first-child+li, 
#sortable1 li:first-child+li+li, 
#sortable1 li:first-child+li+li+li, 
#sortable1 li:first-child+li+li+li+li { 
color:green 
} 
+0

如果你想成爲一個真正的智能屁股你可以使用'#container> ul [id = *'sortable']:first-child'而不是'#sortable1'來將規則應用到第一個ul,以防萬一您在DOM中交換列表poestions。 –

+0

所有解決方案的作品,不知道最好是什麼,但很多謝謝你的幫助和解釋jessica – jess

相關問題