javascript - 如何将元素放在可嵌套列表中

标签 javascript c# jquery jquery-nestable

我正在使用 Nestable List 进行发布访问, 当我将项目从 List1 拖放到 List2 时,我必须保存在数据库中,那么我如何识别拖放到 List2 上的项目?

这是我的代码:

        <div class="col-lg-6">
            <h3 class="droppTextCenter">Serviços Disponíveis</h3>
            <div class="dd" id="nestable">
                <script id="template" type="text/template7">
                    <ol class="dd-list">
                        {{#each Services}}
                        <li class="dd-item" data-id="{{Id}}">
                            <div class="dd-handle">
                                <div class="col-lg-9">
                                    {{Descryption}}
                                </div>
                            </div>
                        </li>
                        {{/each}}
                    </ol>
                </script>
            </div>
        </div>
        <div class="col-lg-6">
            <h3 class="droppTextCenter">Serviços Liberados para o Usuário</h3>
            <div class="dd" id="nestable2">
                <script id="template2" type="text/template7">
                    <ol class="dd-list">
                        {{#each ServicesReleased}}
                        <li class="dd-item" data-id="{{Id}}">
                            <div class="dd-handle">
                                <div class="col-lg-9">
                                    {{Descryption}}
                                </div>
                            </div>
                        </li>
                        {{/each}}
                    </ol>
                </script>
            </div>
        </div>

我正在使用 template7 制作列表。

所以我将在可嵌套的 onChange 上创建一个 ajax 方法以将其保存在数据库中。

$('#nestable').nestable({
    maxDepth: 1,
    group: 1
}).on('change', updateOutput);

// activate Nestable for list 2
$('#nestable2').nestable({
    maxDepth: 1,
    group: 1
}).on('change', updateOutput);

这个将取代 updateOutput。 当我将它从 List1 移动到 List2 时,我必须保存在数据库中,但是当我从 List2 移动到 List1 时,我必须将它从数据库中删除。

function saveServicosLiberados() {
    $.ajax({
        url: "/Admin/MeusNegociosAcessos/SaveServicosLiberados",
        method: "POST",
        data: {
            Id: ????????
        },
        success: function (result) {
            var list = e.length ? e : $(e.target), output = list.data('output');

            if (window.JSON) {
                output.val(window.JSON.stringify(list.nestable('serialize')));
            } else {
                output.val('É necessario estár com um nevegador com suporte à JSON.');
            }
        }
    });
}

function deleteServicosLiberados() {
    $.ajax({
        url: "/Admin/Delete",
        method: "POST",
        data: {
            Id: ??????????
        },
        success: function (result) {
            var list = e.length ? e : $(e.target), output = list.data('output');

            if (window.JSON) {
                output.val(window.JSON.stringify(list.nestable('serialize')));
            } else {
                output.val('É necessario estár com um nevegador com suporte à JSON.');
            }
        }
    });
}

那么,我如何从掉落的元素中获取 Id?

最佳答案

这是一个很难解决的问题(如果我解决了......你来告诉我)。

首先 我把Template7抛开困难。
我在 Notepad++ 中手工编码在这里。
无论如何,此 HTML 预处理器语法与问题的实际主题无关。

问题是如何使用 Nestable plugin 将列表项“移动”从一个列表保存到另一个列表, 顺便说一下,自 2014 年 8 月以来就不再维护了。
所以我为你举了两个例子。

One正在显示在哪里 Hook ajax 请求以保存元素 id 从或拖到 左侧列表。
Second正在显示在何处 Hook ajax 请求以保存一个或两个列表发生变化。

我绝对没有动过插件代码...
它似乎运行良好。

此外,您的问题是关于如何使用它的结果。
所以我从this GitHub example开始而不是您的代码。

我找到了可以从哪里获取相关信息以便将其保存到数据库。

那么看看这两款 Pen。
有什么不明白的地方问我。
;)

我已经留下了所有相关的 console.log() 以帮助理解正在发生的事情。



有趣(?) 轶事:我今天浪费了 3 个小时,等待 GitHub 从 DDoS 攻击Dyn,发布此答案。狗屎发生了! ;)

关于javascript - 如何将元素放在可嵌套列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40155451/

相关文章:

c# - 获取某个字符位置后的下一个字符

javascript - 如何在 html 表体中使用 jQuery 或 javascript?

javascript - 使用 Jquery 将 div 数字内容替换为字符串

javascript - 如何以数组格式保存值?

javascript - PHP对象数组到javascript变量

javascript - 如何在 KeystoneJS 中设置数字字段的格式?

c# - Flash Socket 已连接,但未发送数据

c# - 读取 Main Program.cs 中的 appsettings.json

Javascript 在浏览器/选项卡关闭时显示设计的元素

javascript - 如何获取动态脚本id