2009-06-01 27 views
5

Después de cargar un div interno (#book_table) a través de ajax, quiero cambiar el tamaño del ancho del cuerpo para acomodar el contenido más grande.jQuery .width (val) error en IE - argumento no válido

var new_width = parseInt($('#book_table').css('width'))+407; 
$('body').width(new_width); 

Funciona en FF y Safari, pero falla en IE con "argumento no válido". En el desempaquetado jQuery 1.3.1, que es la línea 1049:

elem[ name ] = value; 

Pasando un valor literal, sin embargo, funciona en IE:

$('body').width(1200); 

Respuesta

10

debería probar:

var new_width = $('#book_table').width() + 407; 
$('body').width(new_width); 

Usando css('width') está devolviendo una cadena con la extensión 'px' en lugar de simplemente un número. Firefox puede analizar correctamente "100px" para que sea 100 con parseInt, pero parece que IE no lo hace.

El uso de width() simplemente arrojará un número entero, que también elimina la necesidad de llamar al parseInt.

Cuestiones relacionadas