如何使用jQuery UI排序闪烁?

Joh*_*zen 2 jquery jquery-ui jquery-ui-sortable knockout.js knockout-sortable

我有一张可分类的扑克牌清单.为了显示牌的顶部,我给每张牌一个负底线.一旦我这样做,jQuery可排序变得非常复杂并且难以使用.我怎样才能消除这个傻瓜呢? 在闪烁的顶部,我如何获得适当的垂直对齐拖动?看来我必须在列表的上方或下方行,以使其将占位符移动到列表的那些边.

我把我的代码放在http://jsfiddle.net/otac0n/wDTwX/上,这样你就能感受到它,但这里有它的要点:

// HTML
<div class="deck" data-bind="sortable: { data: Cards, options: { placeholder: 'card', cursorAt: { left: 5, top: 5 }, tolerance: 'pointer' } }">
    <div class="card" data-bind="text: Name, style: { background: Color }"></div>
</div>

// CSS
.deck
{
    margin: 10px;
    padding: 0 0 130px 0;
}

.card
{
    width: 100px;
    height: 150px;
    border: 1px solid black;
    border-radius: 8px;
    background: White;
    color: White;
    margin: 0 0 -130px 0;
    padding: 5px;
}

// JS
var vm = {
    Cards: ko.observableArray([
        { Name: "Red", Color: "#f00" },
        { Name: "Green", Color: "#0f0" },
        { Name: "Blue", Color: "#00f" },
    ])
};

ko.applyBindings(vm);
Run Code Online (Sandbox Code Playgroud)

Reg*_*ura 5

我也在挣扎着一个闪烁的可分类.注意到它只在2个条件下闪烁:

  1. 有一个connectWith选项被使用
  2. 父容器(在我的例子中,<ul>标签)有一个高度或其他任何东西,比如<div style="clear:both">强迫它有一个高度.

另一方面,如果连接的UL没有高度,我们实际上不能丢弃其中的任何东西.但是只要UL达到高度,它就会闪烁.所以我把高度只有10px而且效果很好.如果这不起作用,请尝试使用overflow:visible或overflow:隐藏在UL的父级上.希望能帮助到你.

更新:

如果有多行项目,它将无法工作.我可以通过这样做来解决这个问题:

over:function(event,ui){$('#my_sortable_list').css('overflow','visible'); }

然后

stop:function(){$('.selector_for_all_sortable_lists').css('overflow','hidden'); }

在两个连接列表上