0

必要に応じてjQueryUIdatepickerをカスタマイズしています。必要なことの1つは、日付ピッカーのサイズを入力と同じサイズに変更することです。これを実行します。

$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 に答える