首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不显示任何内容的情况下获取拖动事件

在不显示任何内容的情况下获取拖动事件
EN

Stack Overflow用户
提问于 2015-05-02 22:04:15
回答 1查看 355关注 0票数 1

下面的页面使用了angular-dragdrop "ngDragDrop“(使用jQueryUI-Dragdrop)

下面的代码可以工作:

代码语言:javascript
复制
<div class="sourceContainer">
    <div ng-repeat="oldLocation in oldLocations"
        data-drag="true"
        data-jqyoui-options="{revert: 'invalid', helper: 'clone'}"
        ng-model="oldLocation"
        jqyoui-draggable="{index: {{$index}}, animate: true, placeholder: 'keep'}"
        class="oldLocation singleTag"
        >{{oldLocation.name}}</div>
</div>
<div class="targetContainer" data-drop="true" ng-model='oldLocationsCopied' jqyoui-droppable="{multiple:false}">
    <div ng-repeat="newLocation in oldLocationsCopied track by $index"
        data-drag="true" data-jqyoui-options="{revert: 'invalid', helper: 'clone'}"
        class="oldLocation singleTag"
        ng-model="newLocation" jqyoui-draggable="{index: {{$index}},animate:true,onDrop:doDrop(newLocation.name)}">{{newLocation.name}}
    </div>
</div>

因此,我可以将DIVs从"sourceContainer“中拖放到"targetContainer”中,并在执行此操作时调用函数"onDrop()“。

现在我想要相同的,没有任何可见的动作。当拖动div时,它应该消失,并且应该调用onDrop()方法。

我可以只隐藏targetContainer,但应该有更好的解决方案

EN

回答 1

Stack Overflow用户

发布于 2015-05-02 23:02:58

在jQuery UI中,您可以将helper设置为希望拖动以获取反馈的DOM元素。请参阅文档:http://api.jqueryui.com/draggable/#option-helper

但似乎将其设置为除original以外的任何值都会阻止在放置后更新可拖动元素的位置。如果你想更新这个位置,你应该自己做,如下所示:

代码语言:javascript
复制
$('.draggable').draggable({
    helper: function() {
        return $('<div>').appendTo($('body'));
    },
    stop: function(e, ui) {
        $(this).css({position: 'relative', left: ui.position.left, top: ui.position.top}).show();
    },
    start: function() {
        $(this).hide();
    }
});

我用上面的代码制作了这个简单的可拖动的演示,没有使用Angular:http://jsfiddle.net/tikosar/u2h332Lw/。我想你可以很容易地根据你的需要来调整它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30003191

复制
相关文章

相似问题

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