0

我有这个页面正在https://schedule.nookal.com/上工作,如您所见,“事件”可以相互拖动和放置。我想做一些类似“重叠事件”的东西(一次 2 个事件)。而且您也可以注意到,事件是可调整大小的(您可以通过调整底部的大小来添加持续时间),问题是 jQuery 没有检测到 div 的新调整大小的部分(它只检测到它的中间)我想要元素每当两个持续时间之间发生冲突时重叠,不仅是中间......另外,宽容:“触摸”似乎不起作用......我在考虑CSS中的一个问题......请帮助

$(".DivBG[data-occupied=1]").droppable({
accept: $(".DivBG[data-occupied=1]"),
hoverClass: "touch",
greedy: true,
over: function(event, ui) {
    $(ui.draggable).css("width", "125px");
    $(ui.draggable).css("margin-left", "125px");
    $(this).css("width", "125px");
},
out: function(event, ui) {
    $(ui.draggable).css("width", "250px");
    $(ui.draggable).css("margin-left", "0px");
    $(this).css("width", "250px");
    $(ui.draggable).removeClass("overlapdraggable");
} 
});
4

1 回答 1

2

当您使用 Jquery 计算宽度和高度时

var width = $(element).css('width');

将始终采用不包括边距、填充或边框的 CSS 宽度。本质上它没有考虑盒子模型。

相反,您可以保证始终通过以下方式获得innerWidth

var width = $(element).innerWidth();

.outerWidth

var width = $(element).outerWidth();

如果您传递true给 outerWidth() 它还包括边距(即整个盒子模型)

var width = $(element).outerWidth(true);

当您使用 Jquery 设置宽度和高度时。宽度、边距、填充和边框必须明确说明。

在上面的代码中,您在 Jquery 中设置了必要的尺寸,但是您缺少任何宽度/高度检查来限制您的 div 以适合outerWidth每个元素所需的尺寸。

于 2012-08-16T10:05:48.080 回答