【发布时间】:2017-05-10 09:27:35
【问题描述】:
我有一个 jQuery 可拖动元素,它应该允许自己向上、向下或向右拖动,但不能向左拖动。
有什么办法可以做到吗?
我意识到可以使用revert,在被拖动后检查它的位置,并将它带回到起始位置;但是,我想从一开始就禁用左向拖动。
这是我当前的代码:
$(elem).draggable({
cursor: "move",
scroll: false,
addClasses: true,
start: function(e, ui) {
//I can calculate the starting position here
},
stop: function(e, ui) {
//some stuff happens here, not relevant
}
});
我的想法是获取起始位置,然后在动态拖动时以某种方式检查位置,将其与起始位置进行比较,如果 current.left
这可能吗?
如果不是,那我想我必须在代码的stop 部分执行检查,然后从那里恢复到原始位置。
请注意,我无法更改全屏父容器的大小/位置。另外,如果我将可拖动元素向右移动并放下,我仍然不能将它从新位置向左拖动。
【问题讨论】:
-
@Mokkun 我不能使用“axis: y”,因为它也会限制向右移动。
-
这需要在
drag中完成,以检查鼠标的位置或被拖动项目的边缘,并确定它是否与特定值发生冲突。另一种选择是创建一个满足您需求的容器,并设置containment选项以使用此元素。
标签: javascript jquery jquery-ui