是否有任何可配置選項來實現像替換列表項目而不是在JQuery可排序UI中交換項目之類的功能。當前的功能類似於Item1與Item2交換,反之亦然。我需要一個功能,如果item2被拖放到Item1上,item2應該替換Item1,而Item2的位置將爲空。任何幫助?謝謝。Jquery可排序 - 替換項目而不是交換項目
0
A
回答
0
你好演示http://jsfiddle.net/CZm9C/2/
現在從第一箱拖到第二。希望這有助於和請讓我知道,如果我錯過了什麼,:)
jQuery的
$(document).ready(function(){
$(".leftDiv .item").draggable({
helper: function(ev, ui) {
return "<span class='helperPick'>"+$(this).html()+"</span>";
},
connectToSortable: ".rightDiv"
});
$(".rightDiv").sortable({
'items': ".item",
'receive': function(event, ui){
// find the class of the dropped ui, look for the one with the integer suffix.
var clazz = getClassNameWithNumberSuffix(ui.item);
$('.leftDiv .' + clazz).draggable("option", "revert", true)
if($('.rightDiv .' + clazz).length > 1){
$('.rightDiv .' + clazz + ':not(:first)').remove();
}
$('.leftDiv .' + clazz).remove();
}
});
});
function getClassNameWithNumberSuffix(el) {
var className = null;
var regexp = /\w+\d+/;
$($(el).attr('class').split(' ')).each(function() {
if (regexp.test(this)) {
className = this;
return false;
}
});
return className;
}
HTML
<div class="leftDiv"> drag to ==>
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
<div class="item item4">Item 4</div>
<div class="item item5">Item 5</div>
<div class="item item6">Item 6</div>
</div>
<div class="rightDiv"> ==> To this
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
<div class="item item4">Item 4</div>
<div class="item item5">Item 5</div>
<div class="item item6">Item 6</div>
</div>
CSS
.leftDiv, .rightDiv {width:120px; float:left; border:1px solid #000; padding:5px; margin:10px; min-height:130px}
.rightDiv {margin-left:40px}
.item {height:20px; line-height:20px; text-align:center; border:1px solid #EEE; background-color:#FFF}
.helperPick {border:1px dashed red; height:20px; line-height:20px; text-align:center; width:120px}
+0
感謝您的代碼和幫助。我真的在Sortable中查看此功能,而不是從可拖動項目連接到Sortable列表拖動。我能夠隱藏佔位符並獲得替換的感覺,但不幸的是,我無法確定要替換的放置位置的索引。對於我來說,接收方法本身並沒有調用。謝謝。 – 2012-04-24 13:39:31
0
您可以用下面的代碼做到這一點:
$('#container').sortable({
connectWith: '#container',
items: '.children', //#container > .children
cursor: 'move',
receive: function(event, ui) {
var item = $(ui.item);
var sender = $(ui.sender);
sender.append(item.siblings('.children'));
}
});
相關問題
- 1. 替換Vim中的項目而不替換舊的替換項目
- 2. isEqualToString是否可以交換項目?
- 3. jquery可排序項目
- 4. Angularjs ui可排序 - 替換已丟棄項目的內容
- 5. 替換項目而不是給出整個路徑
- 6. 與跨度替換項目的Jquery
- 7. Array-within-array項目替換
- 8. 交換ListView項目視圖
- 9. jQuery可排序替換而不是追加?
- 10. 使用basiljs交換項目
- 11. 替換項目DataGridViewComboBoxCell c#
- 12. 替換observableArray中的項目
- 13. K2導出項目,而不是項目
- 14. 替換項目文件夾後Xcode項目不工作
- 15. jquery可排序拖放項目
- 16. Flexbox項目可以更換而不是展開其容器嗎?
- 17. 用jQuery切換可見列表項目
- 18. 交替項目樣式
- 19. jquery交換排序排序
- 20. 排序項目
- 21. ExtJS的可更換項目
- 22. 替換memcached中的項目而不更改到期時間
- 23. 項目轉換
- 24. jQuery UI可排序忽略與項目不匹配的項目選擇器
- 25. Javascript:用另一組項目替換項目
- 26. 用一個新項目替換集合中的項目
- 27. 將iPhone項目轉換爲iPad項目?
- 28. R snaive() - 要替換的項目數不是替換長度的倍數
- 29. 交換清單項目的位置
- 30. React在數組中替換項目
您可以隨時綁定到拖/放事件和自己處理... – 2012-04-24 01:19:58
你可能會使用拖動和dropable而非排序會更好。 – Rob 2012-04-24 01:20:41
@Brad Christie:在文檔中我找不到任何有關Jquery Sortable的drap/drop事件。你能簡單解釋一下嗎?謝謝 – 2012-04-24 01:21:56