Js 类 将此 (class) 传递给 jquery datepicker

Js Classes pass this (class) to jquery datepicker

我正在使用 js classes 将 jQuery UI 日期选择器分配给 dom 元素。这一切都有效,但我遇到的问题是 onSelect 参数。 this 设置为 dom 元素,因此我无法使用 this 调用 class 中的函数。

class form_validate{

        constructor(){
                 this.addDatePickers();
        }

    addDatePickers(){

       $(document).ready(function(){
                         console.log('called');
              var datepickers = document.getElementsByClassName('dh-datepicker');
            var contextClass= this;

            [].forEach.call(datepickers, function(d){   
              $(d).datepicker({ 
                dateFormat: 'dd-mm-yy',
                onSelect: function(contextClass){
                  console.log(this);
                  contextClass.calledf();
                }
              });
            }, contextClass);   
       })

    }

    calledf(){
            console.log('yeaa');
    }


}//end class

var validater= new form_validate();

我也试过传入对象 validator 并将 this 保存到变量并传入(参见上面的 contextClass)。当 this 发生变化时,如何在 class 中调用函数?

https://jsfiddle.net/1t0wfuzw/6/

就往上移动

var contextClass = this;

像这样:

class form_validate {

  constructor() {
    this.addDatePickers();
  }

  addDatePickers() {
    var contextClass = this;
    $(document).ready(function() {
      console.log('called');
      var datepickers = document.getElementsByClassName('dh-datepicker');

      [].forEach.call(datepickers, function(d) {
        $(d).datepicker({
          dateFormat: 'dd-mm-yy',
          onSelect: function() {
            console.log(this);
            contextClass.calledf();
          }
        });
      }, contextClass);
    })
  }

  calledf() {
    console.log('yeaa');
  }

} //end class

var validater = new form_validate();