如果要發生切換配對項目之間ONLY(即1-2,3-4,5-6等)
工作撥弄here
$('ul li').on('click', function(e){
var index = $(this).index(); // Index of clicked item
var temp = $(this).html(); // Contents of clicked item
var partner; // The paired element
if((index+1) % 2 == 0) { // Even
partner = $(this).parent().find('li').get(index-1);
}else { // Odd
partner = $(this).parent().find('li').get(index+1);
}
// Put this in a try/catch to not throw errors for unmatched list items
// (i.e. a list with 9 items, and then clicking on the 9th)
try{
$(this).html(partner.innerHTML);
$(partner).html(temp);
}catch(e) {}
});
這樣做是:
- 獲取點擊的項目
- 的索引和內容來確定是否點擊是奇數還是偶數
- 分配適當的合作伙伴元素
- 內容交換(如果夥伴元素存在)
跟隨t他同樣的模式進行切換,你想用insertBefore()
和insertAfter()
// add attributes to elements for pairing
$('li').each(function(i) {
var partner = i % 2 == 0 ? i + 1 : i - 1
$(this).attr({ id: i,'data-index': i,'data-partner': partner})
}).click(function() {
var $el = $(this),
currIdx = $el.index(),
origIdx = $el.data('index'),
partnerIdx = $el.data('partner'),
dir;
if (currIdx != origIdx) {
dir = partnerIdx > origIdx ? 'After' : 'Before'
} else {
dir = partnerIdx > origIdx ? 'Before' : 'After'
}
$('#' + partnerIdx)['insert' + dir](this)
});
第一個開關很容易理解......其他人不太清楚......他們總是去頂部和頂部去他們的位置?你試過了什麼?你應該顯示你曾經試圖解決這個問題的代碼,我們幫助解決任何問題 – charlietfl
項目3和4應該在5和6之間切換它們之間的位置並且相同 – lvekua