首页 > 解决方案 > jQuery 中继器 + 附加在选择和刷新上

问题描述

我正在创建的发票编辑页面中使用 Jquery Repeater ( https://github.com/DubFriend/jquery.repeater )。中继器用于重复发票的项目(项目名称、价格和选择的税)。我们可以使用 ajax 表单添加新的 Tax。新税被添加到现有的项目列表中,但是一旦您单击添加项目,看起来中继器正在使用选择中第一个创建的选项集,而不是包含新创建选项的最后一个选项。

在此处输入图像描述

这是我正在使用的中继器代码

$(".invoice-item-repeater").length && $(".invoice-item-repeater").repeater({
            show: function () {
                $(this).slideDown(function () {
                    $('.tax').trigger('change', true);
                })
            }, hide: function (e) {
                $(this).slideUp(e, function () {
                    $(this).remove();
                    calculate()
                });
            }
        });

所有选定的税都属于 .tax 类

正如您在示例中看到的那样,在 ajax 表单上添加了 14% 税,并添加到前两组选择选项中,因为它们在创建新税时已经在 DOM 中,但是对于下一个添加的项目,我们没有新的 14% 税,只有 0%。

标签: javascriptjquery

解决方案


我认为你应该触发每个元素。

$(this).slideDown(function () {
        $('.tax').each(function (_, el) {
            el.trigger('change', true);
        });
    });

推荐阅读