如何扩展jQuery Datepicker'foreShow'功能?
我在尝试:
(function ($) {
var old = $.fn.datepicker.beforeShow;
$.fn.datepicker.beforeShow = function () {
var ret = old.apply(this, arguments);
alert("Extended functionality of beforeShow function!");
return ret;
};
})(jQuery);
更新
我想为我的所有日期选择器添加一些额外的功能,例如检查css类;我认为一个好的方法是扩展beforeShow
方法的功能,而不是将功能放在每个地方。
答案 0 :(得分:2)
如果您使用的是jQuery UI datepicker,请使用$.datepicker.setDefaults()方法。
E.g:
$.datepicker.setDefaults({
beforeShow: function() {
if($(this).hasClass('test')) {
alert('got ya');
}
}
});
修改强>
根据你的评论,我将一个click事件监听器委托给datepicker元素。 否则,您将始终覆盖原始属性值。
$('.datepicker').on('click', function() {
if($(this).hasClass('test')) {
alert('got ya');
}
});
$('.datepicker').datepicker({
beforeShow: function () {
//Still called?
console.log('test');
}
});