首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery.repeater不适用于jQuery Ui可排序

jQuery.repeater不适用于jQuery Ui可排序
EN

Stack Overflow用户
提问于 2021-02-03 10:49:09
回答 1查看 565关注 0票数 0

我正在使用jQuery.repater库来创建可重复的表单。我希望使用jQuery Ui可排序库来排序所有可重复的字段。

一切正常,但是,当我对可重复字段进行排序时,输入名称顺序不会重新索引。正如所描述的这里,使用ready事件是可能的。

这是我的代码:

代码语言:javascript
复制
<form class="repeater">
    <div class="sortable" data-repeater-list="group-a">
      <div class="item" data-repeater-item>
        <input type="text" name="text-input" value="A"/>
        <input data-repeater-delete type="button" value="Delete"/>
      </div>
      <div class="item" data-repeater-item>
        <input type="text" name="text-input" value="B"/>
        <input data-repeater-delete type="button" value="Delete"/>
      </div>
    </div>
    <input data-repeater-create type="button" value="Add"/>
</form>

联署材料:

代码语言:javascript
复制
$(document).ready(function() {
  const form = $(".repeater");
  const sortable = $(".sortable").sortable({
    update: function() {
      console.log(form.serializeArray());
    }
  });

  $(".repeater").repeater({
    show: function() {
      $(this).slideDown();
    },
    hide: function(deleteElement) {
      if (confirm("Are you sure you want to delete this element?")) {
        $(this).slideUp(deleteElement);
      }
    },
    ready: function(setIndexes) {
      sortable.on("sortchange", setIndexes);
    }
  });
});

现场直播:https://stackblitz.com/edit/js-pbdssq?file=index.js

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-10 16:28:46

我已解决了这个问题,我已等待了很长时间,现答覆如下:

我叫repeater.repeater("setIndexes")中继器在上每一个可排序的操作。

代码语言:javascript
复制
update: function() {
  myRepeater.repeater("setIndexes");
}

这使其工作正常,但单击Add Button会导致添加多个元素的问题,因此需要在jquery.repeater.js源代码中进行更改。参考文献

jquery.repeater.js中,我们必须进行以下更改:

以前:

代码语言:javascript
复制
$filterNested($self.find('[data-repeater-create]'), fig.repeaters).click(function () {
    addItem();
});

后:

代码语言:javascript
复制
$filterNested($self.find('[data-repeater-create]'), fig.repeaters).click(function (event) {
    addItem();
    event.stopImmediatePropagation();   
});

您可以在此链接找到工作示例。

它不应该破坏任何东西,但我还没有做任何详尽的测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66025936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档