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 中调用函数?
就往上移动
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();
我正在使用 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 中调用函数?
就往上移动
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();