navegador - jquery.browser is deprecated
El tamaƱo de jQuery no funciona en FireFox, Chrome y Safari (8)
Con MSIE todo funciona bien. Con Firefox, supongo que tendrás que recurrir a algunas técnicas oblicuas, como almacenar el ancho / alto original del elemento en propiedades personalizadas y usar $(elem).bind(''DOMAttrModified'', func)
. Luego, en la devolución de llamada func (), compruebe si el nuevo ancho / alto difiere de los almacenados anteriormente, tome la acción de cambio de tamaño respectiva y almacénelos de nuevo para la próxima devolución de llamada del evento. Tenga en cuenta que este enfoque funciona solo para Firefox. Todavía no he podido encontrar una solución decente para Chrome, Safari y Opera. Tal vez usar window.setInterval () haría pero ... suena demasiado slopy ... si el pensamiento me pone un poco enfermo :(
$("#dvMyDIV").bind("resize", function(){
alert("Resized");
});
o
$("#dvMyDIV").resize(function(){
alert("Resized");
});
Las preguntas
- ¿Por qué esto no funciona en Firefox, Chrome y Safari?
- ¿Se puede considerar esto un error de jQuery ya que el tamaño no se maneja para otros navegadores?
- ¿Podría ser la única solución llamar a una función SetTimeout que comprueba el clienteHeight y clientWidth?
- ¿Alguna solución temporal usando jQuery?
¿Estás tratando de configurar myDiv a 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 basado en una altura que se devuelve desde el archivo flash y que parecía funcionar bien para mí.
function setMovieHeight(value) {
var height = Number(value) + 50;
document.getElementById("video").height = height;
}
el jQuery equivilent debe ser:
function setHeight(value) {
var height = number(value) + 50;
$(''#MyDiv'').attr(''height'') = height;
}
cambiar el tamaño solo parece aplicarse al objeto de Windows.
¿Por qué esperas que se cambie el tamaño de #dvMyDIV? ¿Es posible que el cambio de tamaño de ese elemento sea el resultado de otra cosa, tal vez se cambie el tamaño de la ventana? Si es así, intenta
$(window).resize(function(){alert("Resized");});
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 par onResize se usa para ejecutar código especificado siempre que un usuario o script cambie el tamaño de una ventana o marco. Esto le permite consultar el tamaño y la posición de los elementos de ventana, restablecer dinámicamente las propiedades SRC, etc.
Entonces, si desea detectar cuándo se redimensiona la ventana, en jQuery probablemente debería usar $(window).resize(function() { });
Editar: si quieres ver el tamaño de un DIV, depende de cuál es tu intención. Si está cambiando el tamaño con JavaScript, entonces puede 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á mirando para que el DIV cambie de tamaño cuando alguien cambie 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 anteriores de ancho / height y verifíquelos al cambiar el tamaño)?
Finalmente, podría considerar usar watch en las propiedades de ancho / alto, aunque no sé si esto es totalmente compatible con el navegador (creo que esto podría ser solo de Mozilla). Encontré este plugin jQuery que parece que podría hacer lo mismo (con algunas pequeñas modificaciones).
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 que redimensione de manera directa o implícita ese div (que supongo que es un evento controlado por JavaScript) compruebe el nuevo ancho con respecto al ancho anterior y actualice el valor global con el nuevo ancho.
Aquí hay un ejemplo mucho más refinado y en vivo que hace un montón de cambio de tamaño matemático, 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. Por lo tanto, debería funcionar en mozilla y webkit en todos los foros. 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 tragaré cuando tenga que hacerlo y con un recargo IE.
DE TODOS MODOS el enlace:
No es la pregunta ¿POR QUÉ? Está Exigido, como en, QUEREMOS monitorear un DIV cuando se redimensiona.
Por ejemplo obvio, jQuery UI, redimensionable. Sí, el usuario cambió el tamaño de un div por el arrastre del mouse, ¿y ahora qué? Tal vez el contenido en el interior se cambie de tamaño y queremos saberlo. ¿Y deberíamos tener todo el código en un crisol gigante dentro del código original? No lo creo.
Otro navegador rápido que no hace nada, suspiro.
Hay un complemento benalman para eso :)