如何禁用jQuery可嵌套列表中的拖放

ash*_*ish 5 html jquery user-interface jquery-nestable

我正在尝试使用可嵌套的jQuery创建嵌套列表,并在整个列表中禁用拖动功能。下面是我的html。

<div class="dd" id="nestable">
<ol class="dd-list">
    <li class="dd-item" id="no-drag">
        <div class="dd-handle">
            Foo
            <div class="pull-right action-buttons">
                <a class="blue" href="#">
                    <i class="ace-icon fa fa-pencil bigger-130"></i>
                </a>

                <a class="red" href="#">
                    <i class="ace-icon fa fa-trash-o bigger-130"></i>
                </a>
            </div>

        </div>
        <ol class="dd-list">
            <li class="dd-item" id="no-drag">
                <div class="dd-handle">
                    Bar
                    <div class="pull-right action-buttons">
                        <a class="blue" href="#">
                            <i class="ace-icon fa fa-pencil bigger-130"></i>
                        </a>

                        <a class="red" href="#">
                            <i class="ace-icon fa fa-trash-o bigger-130"></i>
                        </a>
                    </div>

                </div>
                <ol class="dd-list">
                    <li class="dd-item" id="no-drag">
                        <div class="dd-handle">
                            Baz
                            <div class="pull-right action-buttons">
                                <a class="blue" href="#">
                                    <i class="ace-icon fa fa-pencil bigger-130"></i>
                                </a>

                                <a class="red" href="#">
                                    <i class="ace-icon fa fa-trash-o bigger-130"></i>
                                </a>
                            </div>

                        </div>
                    </li>
                </ol>
            </li>
        </ol>
    </li>
</ol>
Run Code Online (Sandbox Code Playgroud)

我的脚本如下所示:

$('.dd').each(function(){
            $(this).nestable({
                maxDepth: 1,
                group: $(this).prop('id')
            });
        });
Run Code Online (Sandbox Code Playgroud)

目前,我无法创建嵌套列表,用户可以重新排列嵌套列表。我想禁用该功能,但我无法做到这一点。请指教。

ded*_*ede 5

我有一个类似的问题,并通过使用 CSS 修复它pointer-events

CSS:

.drag_disabled{
    pointer-events: none;
}

.drag_enabled{
    pointer-events: all;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<label class=""><input id="draggable_list" class="" name="draggable_list" type="checkbox" value="false"> <span>Activate Ordering </span></label>

<div id="list" class="drag_disabled dd">
    <ol class="dd-list">
        <li class="dd-item" data-id="Item 1">
            <div class="dd-handle dd-outline dd-anim">
                Text 1
                </div>
            </div>
        </li>
        <li class="dd-item" data-id="Item 3">
            <div class="dd-handle dd-outline dd-anim">
                Text 2
            </div>
        </li>
    </ol>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript(只需切换类drag_enableddrag_disabled复选框:

$('#list').nestable({maxDepth: 1});

     $('#draggable_list').change(function(){
         $('#list').toggleClass('drag_disabled drag_enabled');
     });
Run Code Online (Sandbox Code Playgroud)


小智 5

我已经浏览了 js 文件,我发现使用类“dd-handle”进行拖放处理。

因此,如果您更改句柄类名称,它将像魅力一样工作。

        $('.nestable').nestable({handleClass:'123'});
Run Code Online (Sandbox Code Playgroud)

完毕