jQuery UI .sortable非常跳跃

时间:2013-01-25 14:21:12

标签: jquery jquery-ui jquery-ui-sortable

我正在使用嵌套排序来创建UI编辑器。我猜这与portlet基本类似。用户选择小部件或小部件持有者并可以在屏幕上移动它们,然后保存。他们真的很跳跃,不喜欢坚持某些地方。看起来他们似乎更喜欢被自上而下拖动。我已经尝试添加填充到持有人和小部件,它似乎并没有使它更好。有谁知道一个非常好的方法来使这个废话更准确?我已经尝试了几乎所有我能找到的东西....我理解这个问题(大多数情况下),我只是想不通一个问题。一个问题是当它卡入某个位置时,某些东西移动,有时移动会使布局发生剧烈变化,占位符会来回跳跃试图解决。我不明白为什么我不能让它去到持有者的顶部但是...这是我的js:

  $(".widget_holder").sortable({
        distance: 30,
        revert: true,
        items: ".widget",
        opacity: .8,
        scroll: true, 
        scrollSensitivity: 100, 
        scrollSpeed: 100,
        handle: ".move_widget",
        dropOnEmpty: true,
        tolerance: "pointer",
        cursorAt: { top:0, left: 0 },
        start: function(e, ui){
        $(".widget_holder", ui.item).hide();
        $('.widget').addClass("drag_padding");
        $(".widget_holder" ).addClass("holder_hover").addClass("drag_padding").sortable("refresh");
        },
        update: function(e, ui){
        if(this === ui.item.parent()[0]) {
        updateByHolder();
        }
        },
        stop: function(e, ui){
        $(".widget_holder", ui.item).show();
        $('.widget').removeClass("drag_padding");
        $(".widget_holder" ).removeClass("holder_hover").removeClass("drag_padding");
        }
   }).sortable(
       "option", "connectWith", '.widget_holder' 
    );

2 个答案:

答案 0 :(得分:1)

尝试删除tolerance: "pointer",或将其替换为tolerance: "intersect",

pointer作为tolerance选项会使整个列表非常跳跃!

答案 1 :(得分:1)

父母的Results怎么样(ul,#element_id等)?