【问题标题】:jQuery Datepicker - add class depending on where it appearsjQuery Datepicker - 根据出现的位置添加类
【发布时间】:2011-06-10 07:46:35
【问题描述】:

我需要在我的输入元素中添加一个“上方”或“下方”类,具体取决于日期选择器在哪一侧打开。

我似乎无法弄清楚如何获得即将创建的日期选择器实例的位置....也许我只是想错了。

     $('#order-main .datepicker').datepicker({
    showOn: 'both',

     buttonImage: 'img/icons/calendar.png',
     buttonImageOnly: true,
     minDate: -1,
     maxDate: "+1Y",
     showButtonPanel: true,
     showAnim: 'slideDown',
     hideIfNoPrevNext: true,
     dateFormat: 'yyyy-mm-dd',
     duration: 500,
     beforeShow: function(input, inst) {
      var pos = $(input).offset().top;
      // if the top position of the to-be-created instance is < top position 
      //of the elemnt, its ABOVE, therefore add above, otherwise add below.
          inst.dpDiv.addClass('above')
         }
    });

我知道如何使用 $.extend($.datepicker,{_checkOffset:function(inst,offset,isFixed){return offset}});所以它总是显示在下面,但我更愿意保留它的动态放置功能,但只知道它是在上面还是在下面,这样我就可以正确地设置我的输入元素的样式。

小事一桩,完成就好了。

【问题讨论】:

    标签: jquery jquery-ui datepicker


    【解决方案1】:

    我想这就是你要找的。​​p>

    使用位置而不是偏移量。

    beforeShow: function(input, inst) {
        if (inst.dpDiv.position().top > $(input).position().top) {
            inst.dpDiv
                .removeClass('below')
                .addClass('above');
        } else {
            inst.dpDiv
                .removeClass('above')
                .addClass('below');
        }
    }
    

    【讨论】:

    • 你先生,是个天才!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多