首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拖放将在拖放离开嵌套排序时调用。

拖放将在拖放离开嵌套排序时调用。
EN

Stack Overflow用户
提问于 2015-03-02 11:40:44
回答 2查看 378关注 0票数 2

我有可删除的div与嵌套的可排序和可拖动,这是连接到可排序,并被接受的可下降。

代码语言:javascript
复制
<div id="droppable">
    <div id="nested-sortable"></div>
</div>

<div class="draggable">
   test
</div>

jQuery (2.0.2)

代码语言:javascript
复制
$("#droppable").droppable({
    accept: ".draggable",
    drop: function() {
        console.log('Dropped'); //This should be called on drop!!
    }
});

$("#nested-sortable").sortable({
    placeholder: 'item',
});

$(".draggable").draggable({
    connectToSortable: "#nested-sortable",
    helper: "clone"
});

我的问题是,当我拖动可拖动的可排序时,就会触发drop事件。我不明白为什么-我没掉下来。

我把它复制在这个小提琴上:http://jsfiddle.net/9ydp3L7q/3/

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-03 12:58:41

我找到了一个肮脏的解决办法。我真的不喜欢它,但它似乎很好用。

如果助手有ui可排序助手(当它通过可排序时得到),我将忽略drop。

代码语言:javascript
复制
$("#droppable").droppable({
    accept: ".draggable",
    drop: function(event, ui) {
        if (ui.helper.hasClass("ui-sortable-helper")) {
            return;
        }

        console.log('Dropped');
    }
});

但我必须手动将类从可排序项中删除。如果我试图删除我进入的类和infinate循环(以及页面崩溃中的javascript )--所以我不得不在超时时这样做。

代码语言:javascript
复制
$("#nested-sortable").sortable({
    placeholder: 'item',
    out: function(event, ui) {
        // this looks kind of dirty to me 
        setTimeout(function () {
            $(ui.helper).removeClass("ui-sortable-helper")
        }, 1);
    }
});

固定小提琴:http://jsfiddle.net/9ydp3L7q/6/

票数 1
EN

Stack Overflow用户

发布于 2015-03-02 12:39:53

使用disable表示可排序,而使用拖放。使用可排序时,请使用“禁用可拖”。

代码语言:javascript
复制
$( ".selector" ).sortable( "disable" );
$( ".selector" ).draggable( "disable" );

代码语言:javascript
复制
$('.selector').draggable({
    disabled: false
});
$(".selector").sortable({
      disabled: false
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28808928

复制
相关文章

相似问题

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