JQuery UI - Droppable或Sort" clear"绝对位置元素彼此靠近

时间:2015-10-23 15:12:16

标签: javascript jquery html css jquery-ui

我的页面上有像工具一样灵活的记事本(或日历)。我不想使用完整日历,我似乎无法完成一项特定功能来完成我的自定义项目。

我可能会对这个问题投反对票,因为我可能对我的方法(最佳起点)有所了解,但我会尽我所能在这里提出一个真正有价值的问题

问题:
可以绝对定位元素"检测"当一个新元素在同一个父元素中被删除时,彼此向下移动(如JQ UI可排序)?

我有两个或更多相邻的单元格(父母)(如日历),"注意" (子元素)必须绝对位置超过其父级的宽度。

这是Generic"凝视点":
*我的网格(父母)可以是Div或Table。我设法让子元素延伸/重叠超出父元素以覆盖多个相邻单元格。它们在可投放区域完美落下并对齐左上角,但掉落的物品彼此之间看不到。

对于FullCalander的信用,它在月视图中表现完美:(下)

  • 所以我的问题可能是绝对的位置不是要走的路
  • 可排序可能是答案,但孩子不会超过父宽度
  • 我已经尝试过CSS并在Stack
  • 上阅读了许多绝对位置文章

我有一种感觉,我的方法是错误的(绝对使用)所以希望失败的选民会怜悯我的灵魂并解释我的问题的答案是"不,他们不能"但提出建议,以改善我在这一挑战中的做法。

enter image description here

$(".droppable").droppable({
    drop: function (event, ui) {
        accept: ".draggable"
        activeClass: "ui-state-hover"
        hoverClass: "ui-state-active"
        $(ui.draggable).offset($(this).offset());
        // $(ui.draggable).data('dropped', true); 
        //var count = $(this).length;
        var currentPos = $(this).position();
        $("#pos").text("CURRENT: \nLeft: " + currentPos.left + "\nTop: " + currentPos.top);

var count = $(this).length;          //wrong child count or absolute not found/counted
var count = $(this).children.length; //wrong child count or absolute not found/counted
        // alert(count);

//this shoud show child count like .length - broken
// var countChild = (document.elementFromPoint(currentPos.top, currentPos.left));
   // alert(countChild);
   // console.log(countChild);   
  }
});

JSFiddle

1 个答案:

答案 0 :(得分:0)

您可以使用document.elementFromPoint

  

Document接口的elementFromPoint()方法返回指定坐标处的最顶层元素。

因此,在hover事件或类似事件中,您可以检查目标元素(日历中的事件)是否已存在于特定坐标处。基于此,您可以在被拖动的元素上设置标记或数据,以便在删除后进行定位。

希望我的answer here能帮助您更好地了解这一点。