2012-07-10 4 views
0

Je personnalise le jp dateer de jQuery pour mes besoins. L'une des choses que je besoin est de redimensionner le datepicker être la même taille que l'entrée, donc je fais ceci:jQuery UI datepicker dynamique largeur IE9 bug

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

Il fonctionne parfaitement sur tous les navigateurs, mais IE9. Cela fonctionne même sur IE8. Ce qui se passe dans IE9 devient évident dès que vous changez mois/année avec les flèches. Comme vous pouvez le voir, parfois la largeur n'est pas ajustée et a l'air bizarre. Cela semble aléatoire et je n'arrive pas à comprendre d'où vient le bogue et comment le contourner.

DEMO (champ de date)

Toutes les idées?

Répondre

0

Eh bien, il semble que je l'ai corrigé avec le vieux hack setTimeout(f, 1). Cela fonctionne bien maintenant dans 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) 
    } 
})