jQuery datepicker - 覆盖选项beforeShow

时间:2011-06-14 01:33:39

标签: jquery jquery-ui datepicker jquery-ui-datepicker

我创建了这个主题here,但不知道如何回复它并仍然得到我的新问题的答案......所以我刚刚提出了这个主题。

好的,所以我让我的日期选择器在beforeShow上面添加了一个上面/下面的类,但是现在我需要它在beforeShow上改变它的一个OPTIONS(这样它就可以动画为slideUp或slideDown,具体取决于它是在上面还是下面打开)。

inst.settings.showAnim = 'slideUp';DP_jQuery_1308014346347.datepicker._curInst.settings.showAnim下的firebug上的DOM标签中设置选项,但之后它不会显示日期选择器。

实际上,我只是注意到设置showAnim:'slideUp'甚至不能独立工作,这是否意味着datepicker不接受它o_O?看起来有点奇怪......

有人可以帮忙吗?)?

2 个答案:

答案 0 :(得分:2)

你究竟想在哪里设置动画选项?

如果您使用动画选项初始化一个日期选择器:

$("#myDatePicker").datepicker({ 
    showAnim: 'slideUp' 
});

如果已经初始化了datepicker,那么你必须使用第二种方法:

$("#myDatePicker").datepicker("option", "showAnim", "slideUp");

答案 1 :(得分:0)

解决方案:

请勿更改实例中的设置,将其更改为再次调用插件。

 beforeShow: function(input, inst) {
if (inst.dpDiv.position().top > $(input).position().top) {
        $(inst.dpDiv).removeClass('ui-datepicker-above').addClass('ui-datepicker-below');
        $(input).removeClass('above').addClass('below');
        $('#order-main .datepicker').datepicker('option','showAnim','slideDown');
       } else {
        $(input).removeClass('below').addClass('above');
        $(inst.dpDiv).removeClass('ui-datepicker-below').addClass('ui-datepicker-above');
        $('#order-main .datepicker').datepicker('option','showAnim','fadeIn');
      }