2012-08-16 78 views
0

我有这个页面正在处理https://schedule.nookal.com/,正如你所看到的,“事件”是可拖动的并且可以相互拖放。我想制作一些类似“重叠事件”(每次2个事件)。正如你可以注意到的那样,事件的大小可调整(你可以通过调整底部来增加持续时间),问题是jQuery没有检测到div的新调整大小的部分(它只是检测到它的中间部分)我想要元素重叠,每当有两个持续时间之间的冲突,不仅中间...此外,容忍:“触摸”似乎没有工作...我想在CSS中的问题..请帮助JQuery元素没有丢失

$(".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"); 
} 
}); 

回答

2

当你计算的宽度和高度与jQuery

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

将始终以CSS宽度不包括的margin,padding或边界。实质上它不考虑箱子模型。

相反,你可以保证随时获得innerWidth有:

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

还是.outerWidth

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

如果传递true到outerWidth(),它包括裕也(即整个盒型号)

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

Wh你用Jquery设置宽度和高度。宽度,边距,填充和边框必须明确说明。

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