jQuery UI Sortable - 确定哪个元素位于被拖动的元素下方[关闭]

2023-11-26

我在一个简单的无序列表上实现了 jQuery UI 的 Sortable 插件。有没有办法确定哪个元素在被拖动的元素下面?

在这个截图中Row 3, column 1正在盘旋Row 2-3, column 1。在这种情况下;我需要抓住Row 2-3, column 1.


(source: roosteronacid.com)


我听了之后提出了一个解决方案mousemove拖动可排序对象时发生事件。在 mousemove 上,它会检查中的所有元素sortables以及当前拖动的元素是否悬停在其上方(以零容差与其相交 - 如果它覆盖元素一个像素,则相交)。该代码非常复杂,因此您可以看到正在做什么。如果可排序元素有其宽度、边框等,则交集计算可能会有点偏差,因为width() and height()在这种情况下不返回正确的值

这是一个演示:http://jsfiddle.net/Vwd3r/2/

var sortables = $("li");
var draggedItem;

$("#sort").sortable({
    start: function(event, ui) {
        draggedItem = ui.item;
        $(window).mousemove(moved);
    },
    stop: function(event, ui) {
        $(window).unbind("mousemove", moved);
    }
});

function moved(e) {

    //Dragged item's position++
    var d = {
        top: draggedItem.position().top,
        bottom: draggedItem.position().top + draggedItem.height(),
        left: draggedItem.position().left,
        right: draggedItem.position().left + draggedItem.width()
    };

    //Find sortable elements (li's) covered by draggedItem
    var hoveredOver = sortables.not(draggedItem).filter(function() {
        var t = $(this);
        var pos = t.position();

        //This li's position++
        var p = {
            top: pos.top,
            bottom: pos.top + t.height(),
            left: pos.left,
            right: pos.left + t.width()
        };

        //itc = intersect
        var itcTop      = p.top <= d.bottom;
        var itcBtm      = d.top <= p.bottom;
        var itcLeft     = p.left <= d.right;
        var itcRight    = d.left <= p.right;

        return itcTop && itcBtm && itcLeft && itcRight;
    });
};

注意sortables不限于可排序的项目,它可以是页面上的任何元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery UI Sortable - 确定哪个元素位于被拖动的元素下方[关闭] 的相关文章

  • 使用 qTip2 确认工具提示对话框?

    因此 当用户单击删除按钮时 我尝试创建一个小型确认对话框 内联 工具提示 我想象它看起来有点像这样 但带有小文本和 确定 和 取消 按钮 但我不是来问如何设计它的 我更喜欢使用 qTip2 作为该工作的插件 但如果你有更好的选择 我也会选择
  • 显示带有 jQ​​uery-ui 自动完成功能的微调器

    我一直在到处搜索 但没有看到有人这样做 是否有可能拥有某种带有 jQ uery UI 自动完成功能的旋转器 加载器 1 8 获取数据时 我的解决方案是使用 ui autocomplete loading CSS 类 该类在 ajax GET
  • 是否有一个 jquery List 插件可以自动排序项目并具有强大的添加/删除方法?

    我已经在谷歌上搜索了几个小时 寻找一些东西来处理我的情况 我还不够熟练 无法编写自己的 jquery 插件 该插件应该自动对列表进行排序 这并不像能够轻松地从列表中添加 删除项目那么重要 Themeroller 功能将是一个优点 我基本上会
  • asp.net mvc - Ajax 刷新视图的每个元素

    希望在退出 jquery 对话框后使用 ajax 刷新当前页面 我有一个包含 foreach 循环的视图 数据是从模型中提取的 每个循环有 2 个编辑 删除按钮 当我单击 编辑按钮 时 将打开一个 jquery UI 对话框进行编辑 当我保
  • 如何在 ui-sortable 中手动触发“更新”

    我正在使用可排序的 UI 每个项目中都有一个delete按钮 这是删除功能 delete item click function this closest grid 3 b remove initSortable sortable sort
  • 如何修复连接的可排序对象位置错误的可拖动助手(部分由浮动/相对定位的父元素引起)?

    Preface 我遇到一个问题 当使用放置在浮动 相对定位的父元素中的可拖动元素 可排序元素时 可拖动帮助器偏移不正确 浮动父元素是 Bootstrap 列 其中多个可排序列表放置在一列中 可拖动列表放置在另一列中 Example 这是一个
  • 测试 jQuery UI 工具提示是否打开

    我正在尝试控制自动打开和关闭jQuery 工具提示 http api jqueryui com tooltip 如何测试工具提示的当前状态是否为打开 我正在使用所有内容的最新版本 Thanks 您可以尝试检查是否有任何课程ui toolti
  • jquery ajax加载后丢失CSS

    大家知道如何解决 load Ajax 请求后的 css 问题吗 例如 如果我想从网页加载 DIV 在我的 Ajax 请求之后 container load path to div div id 我丢失了与该 div 关联的所有 css 和脚
  • Jquery Draggable()、clone() 附加 div...请拨动我的 jsfiddle

    UPDATE http jsfiddle net wJUHF 7 http jsfiddle net wJUHF 7 对于任何可能阅读本文的人来说 这是更新且有效的小提琴 我正在努力让这个小提琴发挥作用 这就是问题所在 我可以将图像拖到容器
  • jquery UI datepicker仅月份和年份的css定位问题

    我已经实施了这里讨论的解决方案 JQuery 日期时间选择器 只需选择月份和年份 https stackoverflow com questions 4079525 jquery datetime picker need to pick m
  • jquery 小部件、_create 或 _init

    有些jquery插件扩展小部件使用 create方法 而另一些则使用 init方法 有人可以解释两者之间的区别吗 还有什么时候扩展 widget 或直接扩展 jquery fn 更好的指导 来自jQuery UI 开发人员指南 http d
  • jQuery UI Datepicker 奇怪的行为

    我在使用 jqueryUI 使用简单的日期选择器时遇到了一个奇怪的问题 我只想显示两个月的日历 包括上个月和当前月份 我使用了这段代码 function picker datepicker numberOfMonths 2 showCurr
  • 创建后将事件处理程序添加到 jQuery UI 日期选择器

    我有以下场景 在我的母版页中我有 datepicker datepicker changeYear true changeMonth true dateFormat dd mm yy duration fast 这样 我分配 datepic
  • 将 HTML 表格导出到 Excel

    我在 ASP NET MVC 视图页面上有 HTML 表 现在我必须将该表导出到 Excel 1 我使用部分视图 Inquiries ascx 来显示数据库中的表数据 使用LINQ to Entity 2 我还使用了 UITableFilt
  • 无法使用 HTML 设置未定义 jQuery UI 自动完成的属性“_renderItem”

    我使用以下代码将 jQuery UI 自动完成项呈现为 HTML 这些项目在自动完成控件中正确呈现 但我不断收到此 JavaScript 错误并且无法移动过去 Firefox 无法转换 JavaScript 参数 Chrome 无法设置未定
  • 销毁 JQuery 可拖动对象

    我有一组可拖动的元素 如何删除可拖动功能 draggable draggable disable 对我来说不是一个选择 draggable draggable destroy 回报Uncaught TypeError Cannot read
  • jQueryUI autoComplete 返回空列表

    在我的 asp net mvc3 应用程序中 我为搜索框添加了自动完成功能 当我测试它时 该操作返回了 3 个结果 您可以看到显示了一个列表 但是 这是一个空列表 您只看到 3 个 并且 li 标记之间没有任何内容 我很确定 操作没问题 因
  • 允许调用函数覆盖默认选项 - jQuery UI 对话框

    我希望 CallingFunction 能够覆盖中提供的默认选项showDivPopUp功能 function calling showDivPopUp title of pop up box message to show buttons
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • Jquery Ui 从数据库自动完成

    我是js新手 我找到了自动完成教程 它运行良好 但是为数据库中的多个值配置了自动完成脚本 每次找到关键字后都会添加逗号 然后再次搜索新关键字 如何将其重写为单个值 acompl js function function split val

随机推荐