jQuery UI日期选择器动态宽度IE9错误



我正在根据需要定制jQuery UI日期选择器。我需要的一件事是将日期选择器的大小调整为与输入的大小相同,所以我这样做:

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

除了IE9之外,它在所有浏览器上都能完美运行。它甚至适用于IE8。只要你用箭头改变月份/年份,IE9中发生的事情就会变得显而易见。正如你所看到的,有时宽度没有调整,看起来很奇怪。这似乎是随机的,我无法弄清楚这个错误是从哪里来的,以及如何解决它

演示(日期字段)

有什么想法吗?

好吧,我似乎用旧的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)
  }
})

最新更新