我正在根据需要定制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)
}
})