1

我正在使用以下 jquery 插件https://github.com/DubFriend/jquery.repeater在表单中创建可重复的输入字段。我还通过 jquery 可排序插件添加了对元素重新排序的支持。一切正常,除了可重复元素的索引搞砸了。

通过阅读中继器插件的文档,我看到有一种方法可以重置索引https://github.com/DubFriend/jquery.repeater/issues/9但我无法理解如何在拖动后触发该功能和下降。有人可以建议我怎么做吗?

这是我的可排序代码

jQuery(".repeater-table").sortable({
    axis: "y",
    cursor: 'pointer',
    opacity: 0.5,
    placeholder: "row-dragging",
    delay: 150,
    handle: ".sort-option",
    update: function(event, ui) {
        // stuff to do on sorting update.
    }

}).disableSelection();

这是中继器代码。

jQuery('.wpumcf-field-repeater-options').repeater({
    show: function() {
        jQuery(this).slideDown();

        jQuery('.repeater-wrapper').animate({
            scrollTop: jQuery('.repeater-table').height()
        }, 300);
    },
    hide: function(deleteElement) {
        if (confirm(wpum_admin_js.confirm)) {
            jQuery(this).slideUp(deleteElement);
        }
    },
    ready: function(setIndexes) {
        $dragAndDrop.on('drop', setIndexes);
    },
    isFirstItemUndeletable: true
});

有人知道如何触发重置吗?

4

2 回答 2

0

这是您可以在中继器的“就绪”功能中使用的解决方法:

ready: function (setIndexes) {
    $(".repeater-table").mouseup(function(){
        setIndexes();
    });
},
于 2021-06-10T13:15:04.840 回答
0

虽然这是一个旧线程,但对于任何偶然发现这一点的人,

Ready 函数通过 setIndexes 方法作为它的第一个参数,所以你可以在 repeater 的 ready 方法中做这样的事情:

ready: function(setIndexes) {
    $('body').on('click', '#delete_page', function(event) {
        // your logic
        setIndexes(); // this will reindex the list
    });
}
于 2018-06-25T11:46:21.683 回答