如何访问波斯语日期选择器 jquery 插件的 onSelect 事件中的 (this) 属性
How can I access the (this) attribute inside onSelect event of persian datepicker jquery plugin
我在 dom 中有多个 class 实例。就像下面的例子。
let element = $(".datepicker-birthdate").pDatepicker({
observer: true,
altField: '.observer-example-alt',
format: 'YYYY/MM/DD',
initialValue: false,
autoClose: true,
calendar:{
'persian': {
'locale': 'fa',
'showHint': false
},
'gregorian': {
'locale': 'en',
'showHint': false
}
},
onSelect: function (date, e){
e: is undefine here also
element: is the last instance of .datepicker-birthdate
}
});
该元素总是 return 日期选择器的最后一个实例,但是我想访问我已更改的那个。
有人对此有解决方案吗?
假设 onSelect
函数没有接收事件或元素作为参数,鉴于您在问题中对它们的描述是 undefined
,这似乎是这种情况,那么您可以改为手动循环遍历 class 中的元素并分别实例化它们的日期选择器。这允许您在 select
处理程序函数中维护 this
引用:
$(".datepicker-birthdate").each(function() {
let $datePicker = $(this);
$datePicker.pDatepicker({
observer: true,
altField: '.observer-example-alt',
format: 'YYYY/MM/DD',
initialValue: false,
autoClose: true,
calendar: {
'persian': {
'locale': 'fa',
'showHint': false
},
'gregorian': {
'locale': 'en',
'showHint': false
}
},
onSelect: function(date) {
// use $datepicker as needed here...
$datePicker.addClass('foo');
}
});
});
事实上,库应该在 onSelect 事件中提供 this 对象,而他们没有,也许像 Rory McCrossan 描述的那样在 class 上使用 foreach 循环是最好的选择。
第一步:打开波斯语-datepicker.min.js
第二步:
替换
e.model.options.onSelect(t);
和
e.model.options.onSelect(t, e);
第三步:
之后:
$('').persianDatepicker({
onSelect: function (formattedDate, e) {
console.log($("#" + e.id).val());
}
});
我在 dom 中有多个 class 实例。就像下面的例子。
let element = $(".datepicker-birthdate").pDatepicker({
observer: true,
altField: '.observer-example-alt',
format: 'YYYY/MM/DD',
initialValue: false,
autoClose: true,
calendar:{
'persian': {
'locale': 'fa',
'showHint': false
},
'gregorian': {
'locale': 'en',
'showHint': false
}
},
onSelect: function (date, e){
e: is undefine here also
element: is the last instance of .datepicker-birthdate
}
});
该元素总是 return 日期选择器的最后一个实例,但是我想访问我已更改的那个。 有人对此有解决方案吗?
假设 onSelect
函数没有接收事件或元素作为参数,鉴于您在问题中对它们的描述是 undefined
,这似乎是这种情况,那么您可以改为手动循环遍历 class 中的元素并分别实例化它们的日期选择器。这允许您在 select
处理程序函数中维护 this
引用:
$(".datepicker-birthdate").each(function() {
let $datePicker = $(this);
$datePicker.pDatepicker({
observer: true,
altField: '.observer-example-alt',
format: 'YYYY/MM/DD',
initialValue: false,
autoClose: true,
calendar: {
'persian': {
'locale': 'fa',
'showHint': false
},
'gregorian': {
'locale': 'en',
'showHint': false
}
},
onSelect: function(date) {
// use $datepicker as needed here...
$datePicker.addClass('foo');
}
});
});
事实上,库应该在 onSelect 事件中提供 this 对象,而他们没有,也许像 Rory McCrossan 描述的那样在 class 上使用 foreach 循环是最好的选择。
第一步:打开波斯语-datepicker.min.js
第二步: 替换
e.model.options.onSelect(t);
和
e.model.options.onSelect(t, e);
第三步: 之后:
$('').persianDatepicker({
onSelect: function (formattedDate, e) {
console.log($("#" + e.id).val());
}
});