El cambio de tamaño de jQuery no funciona en FireFox, Chrome y Safari

4 minutos de lectura

El cambio de tamano de jQuery no funciona en
naveen

$("#dvMyDIV").bind("resize", function(){
    alert("Resized");
});

o

$("#dvMyDIV").resize(function(){
    alert("Resized");
});

Las preguntas

  1. ¿Por qué esto no funciona en FireFox, Chrome y Safari?
  2. ¿Se puede considerar esto un error de jQuery ya que el cambio de tamaño no se maneja para otros navegadores?
  3. ¿Podría ser que la única solución sea llamar a una función SetTimeout para verificar clientHeight y clientWidth?
  4. ¿Alguna solución usando jQuery?

Creo que el evento de cambio de tamaño de JavaScript solo se aplica a marcos o ventanas, no a DIV.

por ejemplo, ver esta página:

El controlador onResize even se usa para ejecutar código específico cada vez que un usuario o secuencia de comandos cambia el tamaño de una ventana o un marco. Esto le permite consultar el tamaño y la posición de los elementos de la ventana, restablecer dinámicamente las propiedades de SRC, etc.

Entonces, si desea detectar cuándo se cambia el tamaño de la ventana, en jQuery probablemente debería usar $(window).resize(function() { });

Editar: si desea ver el tamaño de un DIV, depende de cuál sea su intención. Si está cambiando el tamaño con JavaScript, entonces podría implementar un método para realizar el cambio de tamaño y tener ese control llamando a cualquier otro código de cambio de tamaño.

De lo contrario, si solo está observando el cambio de tamaño del DIV cuando alguien cambia el tamaño de la ventana, ¿no funcionaría simplemente adjuntar el oyente de cambio de tamaño a la ventana y luego verificar si el DIV se ha redimensionado (es decir, almacenar los valores antiguos de ancho / altura y verifíquelos al cambiar el tamaño)?

Finalmente, podría considerar usar reloj en las propiedades de ancho/alto, aunque no sé si esto es totalmente compatible con el navegador (creo que esto podría ser solo para Mozilla). encontré este complemento jQuery lo que parece que podría hacer lo mismo (con alguna ligera modificación).

  • El OP probablemente quiera el complemento de cambio de tamaño de Ben Alman que se menciona a continuación.

    – Stijn de Witt

    26 jul.

Hay un plugin de Benalman para eso 🙂

http://benalman.com/projects/jquery-resize-plugin/

¿Está tratando de configurar myDiv en un tamaño específico?

Pruebe el código JavaScript a continuación. Lo usé para cambiar el tamaño de un div que contiene un objeto flash en función de la altura que devuelve el archivo flash y pareció funcionar bien para mí.

function setMovieHeight(value) {
    var height = Number(value) + 50;
document.getElementById("video").height = height;
}

el equivalente de jQuery debería ser:

function setHeight(value) {
   var height =  number(value) + 50;
   $('#MyDiv').attr('height') = height;
}

cambiar el tamaño solo parece aplicarse al objeto de Windows.

El cambio de tamano de jQuery no funciona en
BoBoDev

No es la pregunta ¿POR QUÉ? Es Exigido, como en, QUEREMOS monitorear un DIV cuando se cambia de tamaño.

Por ejemplo, jQuery UI, redimensionable. Sí, el usuario cambió el tamaño de un div arrastrando el mouse, ¿ahora qué? Tal vez el contenido interior haya cambiado de tamaño y queramos saberlo. ¿Y deberíamos tener todo el código en un crisol gigante dentro del código de cambio de tamaño original? No lo creo.

Otro navegador rápido que no hace nada, suspiro.

¿Por qué espera que se cambie el tamaño de #dvMyDIV? ¿Tal vez el cambio de tamaño de ese elemento es el resultado de otra cosa, tal vez la ventana está cambiando de tamaño? Si es así, intente

$(window).resize(function(){alert("Resized");});

El cambio de tamano de jQuery no funciona en
Cirieno

Podría sugerir algo como esto:

1) en la carga de la página, obtenga el ancho de su div y póngalo en una variable global

2) en la ejecución de cualquier operación, directa o implícitamente, cambia el tamaño de ese div (que supongo que es un evento controlado por javascript), verifique el nuevo ancho contra el ancho anterior y actualice el valor global con el nuevo ancho.

Aquí hay un ejemplo mucho más refinado y en vivo que hace muchas matemáticas de cambio de tamaño, todo basado en el evento de cambio de tamaño de la ventana. Funciona brillantemente en ff 3.6, safari 4.0.4 y Chrome. Es un poco grueso en ff 3.5. Entonces, debería funcionar en mozilla y webkit en todos los ámbitos. Evito el otro NAVEGADOR, porque realmente no me gusta, y el código es mucho más limpio sin tener que considerarlo. Me doy cuenta de que tendré que superar eso, me lo trago cuando tengo que hacerlo con un recargo de IE.

DE TODOS MODOS el enlace:

http://fridaydev.com/bookmap/proport3.html

.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad