首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery UI:获取drag‘n’drag中源元素的ID

JQuery UI:获取drag‘n’drag中源元素的ID
EN

Stack Overflow用户
提问于 2012-12-07 17:21:21
回答 2查看 5.5K关注 0票数 1

我正在推动一个拖放,您可以将用户拖放到角色中。我知道如何获取用户ID和目标角色ID,但我不知道如何获取用户所在位置的角色ID!

代码语言:javascript
复制
<div id="role_1" class="role">
    <h5>Administrator</h5>
    <ul class="users">
        <li id="user_1">Foo</li>
        <li id="user_2">Bar</li>
    </ul>
</div>
<div id="role_2" class="role">
    <h5>Member</h5>
    <ul class="users">
        <li id="user_1337">Baz</li>
    </ul>
</div>

<script type="text/javascript">
$(function() {
    // Get roles and users lists
    var $templates = $(".role"),
        $users = $(".users");

    // let the user items be draggable
    $("li", $users).draggable({
        revert: "invalid", // when not dropped, the item will revert back to its initial position
        containment: "document",
        helper: "clone",
        cursor: "move"
    });

    // let the roles be droppable, accepting the user items
    $templates.droppable({
        accept: ".users > li",
        activeClass: "ui-state-highlight",
        drop: function(event, ui) {
            var $uid = ui.draggable.attr("id"),
                $targetRid = $(this).attr("id"),
                $sourceRid = ???;
                // snip
        }
    });
});
</script>

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-07 17:26:10

挂钩start event,获得最接近的.role

代码语言:javascript
复制
$("li", $users).draggable({
    revert: "invalid", // when not dropped, the item will revert back to its initial position
    containment: "document",
    helper: "clone",
    cursor: "move",
    start: function() {
        var role = $(this).closest(".role").attr("id");
        // Here, role is either the id or undefined if no role could be found
    }
});

如果在删除元素时需要该信息,可以在start事件中使用data将其存储在元素上,然后在删除时检索该信息。

票数 3
EN

Stack Overflow用户

发布于 2012-12-07 17:26:23

我认为在启动拖动事件时需要记住这个id:

代码语言:javascript
复制
var srcId;
$("li", $users).draggable({
    revert: "invalid", // when not dropped, the item will revert back to its initial position
    containment: "document",
    helper: "clone",
    cursor: "move",
    start: function( event, ui ) {
        srcId = $(this).closest(".role").attr('id');
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13760138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档