【问题标题】:jquery ui sortable list - full: reactionjquery ui 可排序列表 - 完整:反应
【发布时间】:2013-02-07 14:32:46
【问题描述】:

我想阻止连接的 jquery-ui 可排序列表接受不超过给定数量的项目。

我走了这么远:http://jsfiddle.net/9yzea/6/

在第 66 行添加什么来防止“#playlist”对悬停在其上方的新项目做出反应?我希望它对“完整”的特殊行为做出反应。还是有更好的方法?

谢谢

$(function() {   $( "#playlist" ).sortable({
    cursor: "move",
    handle: ".handle",
    revert: 100,
    opacity: 0.8,
    delay: 50,
    placeholder: "sortable-placeholder",
    stop: function(event, ui) {
        var size = $("#playlist li.track").size();
        $("#music").append(size+" ");
        sizeCheck();
        if (playlistFull) {
            $("#music").append("full ");
            } else { 
            $("#music").append("space ");
            };
        playlistWatcher();
        },
    start: function(event, ui) {
        if (playlistFull) {
            // $(ui.item).sortable('cancel');  // What to do here?
            };
        },
    }).disableSelection();
});

【问题讨论】:

    标签: jquery list user-interface jquery-ui-sortable


    【解决方案1】:

    编辑

    您可以像这样删除stop: 中的项目:

        stop: function(event, ui) {
            if (playlistFull) 
               ui.item.remove();
            var size = $("#playlist li.track").size();
            $("#music").append(size+" ");
            sizeCheck();
            if (playlistFull) {
                $("#music").append("full ");
                } else { 
                $("#music").append("space ");
                };
            playlistWatcher();
            },
        start: function(event, ui){
            if (playlistFull){                       
                $(ui.sender).draggable('cancel');
            }
        }
    

    【讨论】:

    • "返回假;"嗯,那是非常错误的。拖动的项目消失了,并且播放列表已满后不再可排序。一定有更优雅的版本。 “globalEval” - 你是对的。嗯,我认为这只会在“function sizeCheck”内部改变“playlistFull”的状态。所以,仍然:任何解决方案?
    【解决方案2】:

    您现在最好的选择是在可排序已满时禁用它。

    function playlistWatcher() {
        // $("#music #playlist li a.addrem").html("remove");
        // $("#music #tracks li a.addrem").html("add to playlist");
        if (playlistFull) {
            $("#alert").show();
             $( "#playlist" ).sortable("disable");
            //$( "#tracks li" ).draggable("option", "connectToSortable", null );
        } else {
            $("#alert").hide();
            }; 
        };
    

    更新fiddle

    我正在尝试更多更好的解决方案,并在找到时通知您。

    【讨论】:

      猜你喜欢
      • 2011-11-12
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 2015-01-12
      • 2013-06-09
      相关资源
      最近更新 更多