我有两个列表,可以在它们之间交换数据。我的列表之一是手风琴的列表,您可以在其中放置数据,但还包含更具体的手风琴,这些手风琴还允许在其中放置数据。我可以在表之间甚至在手风琴内部的手风琴中拖放数据,但这是问题所在:我也可以拖动整个手风琴。

这是我页面的图片:



我希望能够在手风琴内的项目之间进行排序,而不必包括它们包含的子手风琴。这是我的Jquery函数:

<script>
    $(function () {
        $("#catalog").accordion({ collapsible: true, active: false, autoHeight: false });
        $(".subcatalog").accordion({ collapsible: true, active: false, autoHeight: false });

        $(".SpecificCatalog").sortable({
            connectWith: ".ui-widget-content, .GeneralCatalog", helper: "clone",
            appendTo: "body",
            stop: function (event, ui) {
                //console.log((this).sortable('toArray', { attribute: 'value' }));
                console.log(ui.item);
                console.log(ui.item.text());
            }
        });
        $(".ui-widget-content").sortable({
            connectWith: ".SpecificCatalog, .GeneralCatalog", helper: "clone",
            appendTo: "body",
            stop: function (event, ui) {
                //console.log((this).sortable('toArray', { attribute: 'value' }));
                console.log(ui.item);
                console.log(ui.item.text());
            }
        });
        $(".GeneralCatalog").sortable({
            connectWith: ".SpecificCatalog, .ui-widget-content", helper: "clone",
            appendTo: "body",
            stop: function (event, ui) {
                //console.log((this).sortable('toArray', { attribute: 'value' }));
                console.log(ui.item);
                console.log(ui.item.text());
            }
        });
    });
</script>


这是我的HTML(它包含动态创建手风琴的逻辑):

<div id="content">
    <div id="ListaCodigos">
        <h2 class="ui-widget-header">CodigoAgrupador</h2>
        <div id="products">
            <div id="catalog">
                @foreach (CodigoAgrupadorCuentas_CE c in Model.CodigosAgrupadores)
                {
                    if (unchecked(double.Parse(c.CodigoAgrupador) == (int)double.Parse(c.CodigoAgrupador)))
                    {
                        <h3><a href="#">@c.CodigoAgrupador  -  @c.NombreCuenta</a></h3>
                        <div>
                            <div class="subcatalog">
                                @foreach (CodigoAgrupadorCuentas_CE c2 in Model.CodigosAgrupadores)
                                {
                                    if (double.Parse(c2.CodigoAgrupador) > double.Parse(c.CodigoAgrupador) && double.Parse(c2.CodigoAgrupador) < (double.Parse(c.CodigoAgrupador) + 1))
                                    {
                                        <h4><a href="#">@c2.CodigoAgrupador  -  @c2.NombreCuenta</a></h4>
                                        <div>
                                            <div class="SpecificCatalog">
                                                <ol>
                                                    <li class="placeholder">Add your items here</li>
                                                </ol>
                                            </div>
                                        </div>
                                    }
                                }
                            </div>
                            <div class="GeneralCatalog">
                                <ol>
                                    <li class="placeholder">Add your items here</li>
                                </ol>
                            </div>
                        </div>
                    }
                }
            </div>
        </div>
    </div>
    <div id="cart">
        <h2 class="ui-widget-header">Catalogos</h2>
        <div class="ui-widget-content">
            @foreach (LedgerChartOfAccounts c in Model.Catalogos)
            {
                if (c.CodigoAgrupador == null)
                {
                    <ul>
                        <li class="draggable">@c.GLAccountNumber  - @c.GLAccountName  </li>
                    </ul>
                }
            }
        </div>
    </div>
    <div>
        <footer>Inserte los catalogos en el grupo que pertenescan, jale.</footer>
    </div>
</div>


我已经尝试在包含不同ID的容器中添加更多划分,以便指定某些区域可排序,但是我似乎仍然无法正确处理。欢迎任何帮助。

编辑:我得出的结论是,我需要在div中使用不同的分隔符/类,以便按我希望的方式进行此工作,但我一直在寻找一种使事情仍然保持接近的方法相同的格式,同时又可以按手风琴的预期进行操作。

最佳答案

经过一夜安眠并仔细阅读了代码,我终于解决了它。原来是这个类:“。ui-widget-content”一直是问题所在。

通过将其用于我的jquery函数连接,实际上我将所有手风琴中的所有内容都归为可排序对象,这就是为什么即使使用多个div类来分隔元素,我仍然会有很多“ bug”和“ glitches”的原因。

在第二个列表中,我将div类从

  <div id="ui-widget-content">




<div id="codigosAgrupadores>


并更改了jquery函数中的代码以反映更改。

09-25 17:53
查看更多