estoy usando un código que se parece a lo siguiente:retorno jquery.width 0 en la imagen
img.load(function(){
// do some stuff
$(this).width();
});
En mi devolución de llamada del tamaño de la imagen es siempre 0. Podría tener algo que ver con él, pero mis imágenes son cargado localmente
Pero en verdad, si hago this.width, obtendré el ancho esperado y luego puedo hacer algún tipo de cálculo desde aquí para cambiar mi ventana de extjs.
Después de algunos intentos, me doy cuenta de que si hago $ (esto), todos los atributos que cambio no parecen tener ningún efecto en absoluto.
haciendo $(this).width(40);
no cambiará el ancho de mi imagen pero al hacer this.width = 40
cambiaré el ancho de mi imagen. Es como si al hacer $(this)
estuviera copiando mi HTMLImageElement dentro de un nuevo elemento y esos cambios se aplicarían solo si añadí al dom nuevamente para reemplazar el viejo.
No estoy tan seguro de entender lo que está pasando allí.
Editar
Esto es lo que mi img
variable contiene.
img = $('<img>');
img.attr('src', '....image');
Editar 2
Esto no cambia el hecho de que jQuery no maneja tamaño de la imagen en imágenes de memoria pero sentí que sería bueno para cualquier persona que utilice Extjs para no repetir mi error. Uno de los grandes problemas en mi caso es que el objeto img
que utilicé era un objeto válido, pero dado que estoy usando ExtJs, inadvertidamente cometí un error estúpido. He creado mi ventana de esa manera ...
Ext.create('Ext.Window',
// some settings
items: [{
html: img.wrap('<div>').parent().html(),
// etc
En otras palabras, el evento que creé fue el img, pero realmente nunca se añadió img
al DOM. ExtJs agregó texto html al DOM que creó un nuevo objeto que no puede modificarse a través del evento, etc.
Así que tengo que crear una identificación para encontrar el nuevo elemento y todo esto tiene que hacerse después de que se realiza una llamada a modalWindow.show()
. Después de eso, todo funciona a la perfección.
Para cambiar el tamaño de la ventana, si las dimensiones están configuradas, puede establecerlas de nuevo en null
y hacer una llamada doLayout en la ventana y volverá a calcular Windowsize.
¿Puede publicar HTML asociado? Además, no necesitaría jQuery para esto. Debería poder acceder a la propiedad en javascript directo – pixelbobby
¿Cuál es exactamente el valor de la variable 'img' en ese código? ¿Cómo se configura, en otras palabras? – Pointy
El primer parámetro de ['.load()'] (http://api.jquery.com/load/) debe ser la URL que desea cargar, luego la función completa. ¿Qué es 'img'? – sachleen