您将如何重构呢?

时间:2019-12-21 00:25:05

标签: javascript refactoring

我有这个:

<td class=" dt-center" style="padding: 0px;">
    <input class="a" name="constCheck" type="checkbox" checked="">
</td>

您会看到,有两个函数的代码非常相似,但是问题是我正在使用另一个ID将当前触发器元素的值复制到另一个输入。

1 个答案:

答案 0 :(得分:0)

使函数传递两个参数:将侦听器附加到的选择器和传递给.element的选择器。然后使用pp-zipcodezipcode以及相反的参数再次调用它:

const addListener = (targetSel, elementSel) => {
  $(targetSel).on('keyup change', function () {
    var zip = $(this).val();
    $(elementSel).val(zip);
    $('#subscribe_form').validate().element(elementSel);
  });
};
addListener('#pp-zipcode', '#zipcode');
addListener('#zipcode', '#pp-zipcode');