我正在使用以下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
});
有人知道如何触发重置吗?
答案 0 :(得分:0)
尽管这是一个老话题,但对于偶然发现此问题的人来说,
就绪函数将setIndexes方法作为其第一个参数传递,因此您可以在Repeater的ready方法中执行以下操作:
ready: function(setIndexes) {
$('body').on('click', '#delete_page', function(event) {
// your logic
setIndexes(); // this will reindex the list
});
}
答案 1 :(得分:0)
这是您可以在中继器的“就绪”功能中使用的解决方法:
ready: function (setIndexes) {
$(".repeater-table").mouseup(function(){
setIndexes();
});
},