如何访问波斯datepicker jquery插件的onSelect事件中的(this)属性
我在dom中有一个类的多个实例。就像下面的例子如何访问波斯datepicker jquery插件的onSelect事件中的(this)属性,jquery,datepicker,Jquery,Datepicker,我在dom中有一个类的多个实例。就像下面的例子 let element = $(".datepicker-birthdate").pDatepicker({ observer: true, altField: '.observer-example-alt', format: 'YYYY/MM/DD', initialValue: false, autoClose: true, calendar:{ 'persia
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
}
});
元素总是返回日期选择器的最后一个实例,但是我希望访问我所更改的那个实例。
有人对此有解决方案吗?假设
onSelect
函数不接收事件或元素作为参数,如果您在问题中描述它们是未定义的
,情况似乎就是这样,然后,您可以手动循环类中的元素,并分别在这些元素上实例化日期选择器。这允许您在select
处理程序函数中维护This
引用:
$(“.datepicker birthdate”).each(函数(){
让$datePicker=$(这个);
$datePicker.pDatepicker({
观察家:对,,
altField:'。观察者示例alt',
格式:“YYYY/MM/DD”,
初始值:false,
自动关闭:是的,
日历:{
“波斯语”:{
'locale':'fa',
“showHint”:错误
},
“格里高利人”:{
“locale”:“en”,
“showHint”:错误
}
},
onSelect:功能(日期){
//根据需要在此处使用$datepicker。。。
$datePicker.addClass('foo');
}
});
});
事实上,库应该在onSelect事件中提供this对象,而它们没有,也许像Rory McCrossan所描述的那样在类上使用foreach循环是最好的选择。步骤1:打开persian-datepicker.min.js
步骤2:
替换
与
步骤3:
之后:
e.model.options.onSelect(t);
e.model.options.onSelect(t, e);
$('').persianDatepicker({
onSelect: function (formattedDate, e) {
console.log($("#" + e.id).val());
}
});