【发布时间】:2014-02-14 23:09:36
【问题描述】:
我有一个外部 div 和一个内部 div。内部div可以垂直拖动,外部div可以水平拖动。我搞定了(http://jsfiddle.net/27Nh2/)
现在,如果用户尝试水平拖动内部 div,我还希望水平拖动外部 div。内部 div 应保持在外部 div 内部的位置,而外部 div 水平拖动。
问题是,如果我尝试水平拖动内部 div,则没有任何拖动。
<div class="slides">
Outer - only drag horizontally
<div class="slide">
Inner - only drag vertically
</div>
</div>
.slides {
margin:20px;
background-color:#aaa;
cursor:pointer;
width:200px;
height:100px;
}
.slide {
width:100px;
height:200px;
margin:20px;
background-color:#ccc;
}
$(".slides").draggable({
axis:"x",
});
$(".slide").draggable({
axis:"y",
});
【问题讨论】:
-
只是为了澄清,您希望元素一起移动,但将它们的移动限制在 x 和 y 轴上。因为否则
.draggable()本身会让你通过单击来移动两者。 -
外部元素限制为水平拖动,内部元素限制为垂直拖动。当您单击内部元素时,如果外部元素位于内部元素之后,您应该能够进行水平拖动。并且内部元素的位置是相对于外部元素的,所以如果外部元素水平拖动,内部元素也会随之移动。