bes*_*nce 23 jquery-ui datepicker
无论我尝试什么,我都无法在我的datepicker上触发beforeShow事件.这是我的代码:
$('#calendar').datepicker({
inline: true,
dateFormat: 'mm,dd,yy',
beforeShow: function(input, inst) { alert('before'); }
});
Run Code Online (Sandbox Code Playgroud)
我已将beforeShowDay和onSelect事件添加到我的datepicker中,并且它们正确地触发.有没有其他人有这个问题?
Dav*_*edy 26
这是我的团队提出的解决方案,因此我们不必记住每次更新时都要修改jQuery文件.只需将其添加到您自己的脚本并包含它:
(function ($) {
$.extend($.datepicker, {
// Reference the orignal function so we can override it and call it later
_inlineDatepicker2: $.datepicker._inlineDatepicker,
// Override the _inlineDatepicker method
_inlineDatepicker: function (target, inst) {
// Call the original
this._inlineDatepicker2(target, inst);
var beforeShow = $.datepicker._get(inst, 'beforeShow');
if (beforeShow) {
beforeShow.apply(target, [target, inst]);
}
}
});
}(jQuery));
Run Code Online (Sandbox Code Playgroud)
小智 5
实际上,这更正确(并遵循插件/类模式):
var beforeShow = $.datepicker._get(inst, 'beforeShow');
extendRemove(inst.settings, (beforeShow ? beforeShow.apply(target, [target, inst]) : {}));
Run Code Online (Sandbox Code Playgroud)
这有点棘手,但使用setTimeout方法来启动该功能对我来说效果很好。
$('#calendar').datepicker({
inline: true,
dateFormat: 'mm,dd,yy',
beforeShow: function() {
setTimeout(function() {
alert('before');
}, 10);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27736 次 |
| 最近记录: |