我在另一个div'box'父容器中有div'slide'元素,并且已将JQuery Draggable应用于子项。在拖动项目时,我正在调整父容器的大小,有时会缩小,有时会扩大它。在拖动时调整JQuery可拖动元素的包含父项的大小
问题是,JQuery没有响应这个调整大小,仍然包含在父级的原始尺寸内的拖动元素,而不是在其当前的大小,直到mouseup - 下一个拖动会话将使用新的尺寸直到它再次改变)。
要尝试和解决这个问题,我希望能触发鼠标松开事件后,通过鼠标按下事件,让jQuery将使用新的容器大小:
$('.slide').draggable({ axis: "x", containment: 'parent',
drag: function (e, ui) {
resizeContainer();
if (outsideContainer()){
// Try to stop and restart dragging
$(this).trigger('mouseup');
$(this).trigger('mousedown');
}
}
然而,这将引发异常...
Unable to get value of the property '0': object is null or undefined
...在这条线的jQuery代码:
this.helper[0].style.left=this.position.left+"px";
任何人都知道^ h我可以a)让Draggable实时响应父维度的变化或b)触发dragstop然后无缝地dragend?
谢谢。
顺便说一句,我知道我可以使用返回false,结束拖动,但我需要这对用户来说是不可见的,所以他们可以继续移动鼠标来拖动元素,而不必鼠标移动并再次返回。 – Fijjit