首页 > 解决方案 > Javascript 范围:回调函数抛出“今天不是函数”

问题描述

我编写了以下代码并且不想重复该函数(今天)两次,所以我尝试在回调函数 afterAdd 中编写它,但它不起作用。为什么回调函数检测不到?

<script type="text/javascript">
    var today = $(document).ready( function() {
        var todayDate = new Date();
        todayDate.setMinutes(todayDate.getMinutes() - todayDate.getTimezoneOffset());
        $('input[name="purchase_date"]').val(todayDate.toISOString().slice(0,10));
    });
    $(".addform .repeatable").repeatable({
        addTrigger: ".add",
        deleteTrigger: ".del",
        template: "#form_item",
        afterAdd: today
      });
    </script>

标签: javascriptjquery

解决方案


首先创建today为函数。然后调用$(document).ready(today),并按today正常方式在您的代码中使用:

var today = function() {
  var todayDate = new Date();
  todayDate.setMinutes(todayDate.getMinutes() - todayDate.getTimezoneOffset());
  $('input[name="purchase_date"]').val(todayDate.toISOString().slice(0, 10));
};
$(document).ready(today);
$(".addform .repeatable").repeatable({
  addTrigger: ".add",
  deleteTrigger: ".del",
  template: "#form_item",
  afterAdd: today
});

推荐阅读