0

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

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

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

演示(日期字段)

有任何想法吗?

4

1 回答 1

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)
  }
})
于 2012-07-11T00:05:29.663 回答