jQuery UI datepicker动态宽度IE9 bug

时间:2012-07-10 23:42:06

标签: jquery jquery-ui internet-explorer

我正在根据自己的需要自定义jQuery UI datepicker。我需要的一件事是将datepicker的大小调整为与输入相同的大小,所以我这样做:

$input.on('focus keyup', function(){
  $(this).datepicker('widget').width($(this).outerWidth())
})

它适用于所有浏览器,但IE9。它甚至适用于IE8。只要您使用箭头更改月份/年份,IE9中发生的情况就会变得明显。如您所见,有时宽度不调整,看起来很奇怪。它似乎是随机的,我无法弄清楚bug来自何处以及如何解决它。

DEMO(日期字段)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好吧,我似乎用旧setTimeout(f, 1)黑客修复了它。它现在在IE9中工作正常。

$(this).datepicker({
  onChangeMonthYear: function () {
    // hack to fix ie9 not resizing
    var w = $(this).outerWidth() // cache first!
    setTimeout(function(){
      $(this).datepicker('widget').width(w)
    }, 1)
  }
})