我想使用jQuery插件jquery.event.drag
拖动多个元素这是fiddle of the original demo:
以下是original demo的链接:
在演示中,用户点击他想要选择的方格并拖动它们。
但我想做一些最简单的事情:只需点击方块“1”并移动所有方块。
我尝试了不同的事情,结果并不好,看到这个小提琴:
http://jsfiddle.net/Vinyl/gVFCL/2/
你能帮我解决这个问题吗?
HTML code:
<div class="drag" style="left:20px;"></div>
<div class="drag" style="left:100px;"></div>
<div class="drag" style="left:180px;"></div>
CSS代码
.drag {
position: absolute;
border: 1px solid #89B;
background: #BCE;
height: 58px;
width: 58px;
cursor: move;
top: 120px;
}
.selected {
background-color: #ECB;
border-color: #B98;
}
的jQuery
jQuery(function($){
$('.drag')
.click(function(){
$( this ).toggleClass("selected");
})
.drag("init",function(){
if ( $( this ).is('.selected') )
return $('.selected');
})
.drag(function( ev, dd ){
$( this ).css({
top: dd.offsetY,
left: dd.offsetX
});
});
});
EDIT Rajagopal的答案中给出的链接是可以的。 我还发现这个插件MultiDraggable很容易使用:https://github.com/someshwara/MultiDraggable
答案 0 :(得分:2)
jQuery(function($) {
$('.drag').drag("init", function() {
if ($(this).is('#test')){
return $('.selected');
}
}).drag(function(ev, dd) {
$( this ).css({
top: dd.offsetY,
left: dd.offsetX
});
});
});
答案 1 :(得分:2)
你必须做这样的事情,
$('.drag').drag("init", function(ev, dd) {
if (this.id == "test") {
return $(".drag").addClass("selected");
}
}).drag(function(ev, dd) {
if (ev.target.id == "test") {
$(this).css({
top: dd.offsetY,
left: dd.offsetX
});
}
});
这是工作sample。希望,这个会帮助你。
修改强>
您可以在这种情况下使用jquery-ui draggable插件。看一下这个http://jqfaq.com/how-to-drag-the-multiple-elements-with-jquery-ui-draggable/。嘿,这个会帮助你!
答案 2 :(得分:2)
我的代码升级了多拖和多选:
$('.drag').drag("init", function() {
return $('.selected');
}).drag(function(ev, dd) {
$( this ).css({
top: dd.offsetY,
left: dd.offsetX
});
});
$('div[class*="drag"]').click(function(){
$(this).toggleClass("selected");
})
答案 3 :(得分:1)
在原始的jsfiddle变化中
.click(function(){
$(this).toggleClass("selected");
})
到
.click(function(){
$('.drag').toggleClass("selected");
})