是否有任何可配置選項來實現像替換列表項目而不是在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. jQuery可排序鎖項目
- 5. Angularjs ui可排序 - 替換已丟棄項目的內容
- 6. 替換項目而不是給出整個路徑
- 7. Observable Collection替換項目
- 8. Backbone Marionette:CompositeView替換項目而不是追加它們
- 9. 與跨度替換項目的Jquery
- 10. Array-within-array項目替換
- 11. Sharepoint項目文件替換
- 12. 添加項目數量而不是替換
- 13. 交換ListView項目視圖
- 14. 使用basiljs交換項目
- 15. 替換observableArray中的項目
- 16. 動態替換TabBar項目
- 17. Windows Azure項目替換ServiceConfiguration.Cloud.cscfg
- 18. 替換QTableWidget中的項目
- 19. 替換項目DataGridViewComboBoxCell c#
- 20. jQuery可排序替換而不是追加?
- 21. 可替換項目的鍵控集合
- 22. jQuery可排序的交換元素,而不是插入
- 23. 在GridView中交換項目
- 24. jQuery可排序 - 在不可排序項目之間下降
- 25. K2導出項目,而不是項目
- 26. 項目替換數不是更換長度
- 27. 替換項目文件夾後Xcode項目不工作
- 28. jquery可排序拖放項目
- 29. jQuery可排序 - 禁用單個項目
- 30. jQuery的排序,項目
您可以隨時綁定到拖/放事件和自己處理... – 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