我有一个可拖拽的需要在开始而不是初始化时设置它的遏制集。开始时的JQuery UI Draggable遏制
编辑 的原因是,可拖动是组件的一部分,该组件可以在多个地方存在,所以我需要检查(启动),其中在DOM它的存在,并设置基础上,适当控制它的位置。
例如,如果拖动存在于A元素,设置围堵元素A.如果例如在B元素存在,将其设置为元素B.
为了进一步澄清,我不是在寻找的直接父是容器(因为我相信这可以通过将“父”传递给控件来处理),而是一个任意的父项,因此我需要在开始拖动时执行此逻辑。
I've tried the obvious (jsfiddle)
$('#dragMe').draggable({
start: function (event, ui) {
$(this).draggable('option', "containment", '#container');
},
});
这工作,但只有你拖着元素后两次。所以,举个例子,如果你拿起红色方块并将其拖出遏制区,它会让你。但是,如果将其放入容器中,然后再次拖动它,它将被正确包含。 (注意,我使用的是Chrome)
这使我相信在启动函数被调用之前检查遏制。
有没有什么办法可以让JQuery UI识别更改后的选项,还是我需要手动约束边界内的可拖动?
我不明白你为什么不只是在做'$('#dragMe')。draggable({containment:'#container'});'。 http://jsfiddle.net/j08691/9X7Hd/1/ – j08691
@ j08691我刚要回答这个问题。你应该把它作为答案。 –
@SpencerMay - 如果我们错过了某些东西,我会给Johannes一个澄清自己的机会。 – j08691