jQuery拖放可排序
jQuery drag and drop with sortable
我在尝试使用某些拖放元素上的可排序元素从 JS 中获取数组时遇到问题。可以在以下位置找到工作演示:
例
我需要实现什么:
- 在图像上拖动项目,获取 x,y(完成)
- 放置完所有项目后,使用 jQuery sortable? 获取具有 x,y 坐标的 id 数组。
array(23456->{XPOS:234,YPOS:234},23456->{XPOS:234,YPOS:234},....等
我不确定如何将可排序对象绑定到仅放在图像上的项目,然后将这些值放入数组中
这是到目前为止的代码:
jQuery(function($){
$('.dragThis').bind('click', function(){
$(this).css("border","3px solid #fff");
$(this).draggable({
containment: $('body'),
drag: function(){
$('#dropHere').droppable({
accept: '.dragThis',
over : function(){
$(this).animate({'border-width' : '3px', 'border-color' : '#0f0'}, 500);
}
});
},
stop: function(){
var position = $(this).position();
var parentPos = $('#dropHere').offset();
var xPos = position.left - parentPos.left;
var yPos = position.top - parentPos.top;
var finalOffset = $(this).position();
var finalxPos = xPos;
var finalyPos = yPos;
$('#finalX').text('Final X: ' + finalxPos);
$('#finalY').text('Final Y: ' + finalyPos);
//$('.dragThis').sortable();
console.log (finalxPos,finalyPos,$(this).attr("id"));
},
revert: 'invalid'
//connectToSortable: '#dropHere'
});
});
});
任何指向正确方向的帮助,将不胜感激。为了澄清,我将通过 AJAX 将值写入数据库以供稍后调用。
提前致谢
简单的解决方案:
-
在它们自己的"drop"事件上为这些元素添加一个类,然后让所有这些元素都有一个带有选择器的类。
-
之后,方便的
$.fn.each()
和$.fn.offset()
会有所帮助。 -
然后,您可以使用
top
、left
而不是您提到的xpos
、ypos
来处理这些坐标。
下面是一个示例:
var coordinates = {};
$(".dropped").each(function(item) {
coordinates[$(item).attr("id")] = $(item).offset();
});
相关文章:
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- Rubaxa可与聚合物进行排序/拖放不起作用,具体取决于显示器:
- 如何在Javascript中创建排序、拖放多级列表
- 在jQuery UI中获取ul和li值,拖放即可排序
- jQuery UI-拖放排序和还原
- 拖放以在 Javascript 中对矩形重新排序
- 表格拖放重新排序和列排序
- 使用 ajax 拖放功能对列字段重新排序?PHP/jQuery.
- jq网格行排序通过拖放
- HTML5拖放教程 - 可排序列表
- 使用JQuery UI双向排序/未排序拖放
- JQuery 可排序、可拖动和可拖放不协同工作
- 用angularjs对表格的行进行排序或重新排列(拖放)
- JQueryUI:创建两个拖放列表的最佳方式,其中一个是可排序的,另一个在拖放时重新排序
- 如果拖放过快,则不会调用可排序的拖放处理程序
- 在可排序的jquery ui中自定义拖放
- Onsen UI+可排序列表(拖放)
- 如何在Yii中实现表行拖放排序
- 在jQuery上更新Div隐藏字段可排序拖放更新
- 拖放、排序、克隆和更改类不起作用