Foros del Web » Programando para Internet » Jquery »

plugin jquery no funciona en IE7

Estas en el tema de plugin jquery no funciona en IE7 en el foro de Jquery en Foros del Web. Hola a todos. He realizado un plugin jquery para hacer mas vistosa -con cierto efecto- la aparición de imágenes en una página, y funciona bien ...
  #1 (permalink)  
Antiguo 23/04/2010, 11:32
 
Fecha de Ingreso: agosto-2003
Mensajes: 9
Antigüedad: 21 años, 4 meses
Puntos: 0
plugin jquery no funciona en IE7

Hola a todos.

He realizado un plugin jquery para hacer mas vistosa -con cierto efecto- la aparición de imágenes en una página, y funciona bien en IE8 y FF, pero no funciona en IE7.

En este navegador en cuestión, de todas las imágenes que tiene que mostrar, solo me muestra una, la primera y nada mas.

La página es la siguiente: http://www.ferremundo.com.ar/fxmarcas.php

Para hacer el efecto me he "inspirado" en este sitio http://webmuch.com/image-flip-using-jquery/

Desde ya agradezco si me pueden ayudar a solucionar este inconveniente.

Saludos

Andres
  #2 (permalink)  
Antiguo 23/04/2010, 14:42
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 9 meses
Puntos: 101
Respuesta: plugin jquery no funciona en IE7

Muy lindo efecto.

En IE8 se ve bien.

En ie7 no.

Pero es dificil comentar la pagina. Te animas a publicar aquí directamente el codigo? Así lo analizamos.
  #3 (permalink)  
Antiguo 23/04/2010, 16:31
 
Fecha de Ingreso: agosto-2003
Mensajes: 9
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: plugin jquery no funciona en IE7

Cita:
Iniciado por mayid Ver Mensaje
Muy lindo efecto.

En IE8 se ve bien.

En ie7 no.

Pero es dificil comentar la pagina. Te animas a publicar aquí directamente el codigo? Así lo analizamos.
Aqui pongo el código del javascript

Código Javascript:
Ver original
  1. jQuery.fn.aparece = function(vel,dur) {
  2.     this.each(function(i){
  3.         var $this = jQuery(this); //Convertimos a jQuery
  4.         $this.hide();
  5.         var margin = $this.width()/2; //92
  6.         var width  = $this.width(); //184
  7.         var height = $this.height(); //184
  8.         j = (i+1)*vel;
  9.         setTimeout(function(){
  10.             $this.stop().css({width:'0px', height:''+height+'px', marginLeft:''+margin+'px', opacity:'0.5'});
  11.             $this.stop().animate({width:''+width+'px', height:''+height+'px', marginLeft:'0px', opacity:'1'},{duration:dur});
  12.         },j);
  13.     });
  14. }
  15.  
  16. $(document).ready(function(){
  17.         $("img#loslog").aparece(100,300); // velocidad, duracion
  18. });

En el html esta es una parte del ejemplo
Código HTML:
Ver original
  1. <li><img id="loslog" src="marcas/3m.gif"></li>
  #4 (permalink)  
Antiguo 24/04/2010, 09:46
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 9 meses
Puntos: 101
Respuesta: plugin jquery no funciona en IE7

... :) Todavía no se me ocurre nada.
  #5 (permalink)  
Antiguo 25/04/2010, 08:50
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años, 1 mes
Puntos: 281
Respuesta: plugin jquery no funciona en IE7

¿Te da algún error en IE8? Eso me ha pasado a veces. No se si el problema es que IE8 es más estricto o defectuoso. Una forma de rápida (y sucia) de resolver es poner un metatag en el HTML que le diga a IE8 que se comporte como IE7:

Código HTML:
Ver original
  1. <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

Pero la mejor manera es tratar de resolver el javascript. Casi siempre es algún objeto o alguna variable que no ha sido definida antes de usarse.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #6 (permalink)  
Antiguo 25/04/2010, 09:39
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 9 meses
Puntos: 101
Respuesta: plugin jquery no funciona en IE7

Yo no vi que diera ningun error.

Tengo mis dudas sobre tu uso de this:

var $this = jQuery(this); //Convertimos a jQuery

Ahí comentas que convertis a jquery. Pero es todo lo contrario. jQuery se entiende mejor con el $(this) entre parentesis.

Mucho no se sobre crear funciones de la manera en que lo hacès. Sí entiendo que aquí el uso del this es correcto:
this.each(function(i){

Pero ya luego... tengo mis dudas.
  #7 (permalink)  
Antiguo 25/04/2010, 09:41
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 9 meses
Puntos: 101
Respuesta: plugin jquery no funciona en IE7

Otra cosa: para el css y el animate, hay un problema de comillas:

width:''+width+'px'

Deberían quedar el numero y el px entre comillas. Aunque no se bien como hacerlo :D
  #8 (permalink)  
Antiguo 26/04/2010, 11:54
 
Fecha de Ingreso: agosto-2003
Mensajes: 9
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: plugin jquery no funciona en IE7

Cita:
Iniciado por juaniquillo Ver Mensaje
¿Te da algún error en IE8? Eso me ha pasado a veces. No se si el problema es que IE8 es más estricto o defectuoso. Una forma de rápida (y sucia) de resolver es poner un metatag en el HTML que le diga a IE8 que se comporte como IE7:

Código HTML:
Ver original
  1. <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

Pero la mejor manera es tratar de resolver el javascript. Casi siempre es algún objeto o alguna variable que no ha sido definida antes de usarse.
En IE8 funciona perfecto, ni hablar del FF.
El problema es justamente con el Internet Explorer 7. En esta versión del navegador, realiza el efecto pero solo lo hace con la primera imagen. El problema puntualmente es que no hace la iteración de todas las imágenes.

De todas maneras, muchas gracias por la información.
  #9 (permalink)  
Antiguo 29/04/2010, 08:30
 
Fecha de Ingreso: agosto-2003
Mensajes: 9
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: plugin jquery no funciona en IE7

Bueno, todavía sigo sin solucionar mi problema...

Hice el código más sencillo y a modo de ejemplo, y lo que a mi entender no funciona es el jquery en IE7, mas precisamente la iteración de los objetos.

Aquí está el ejemplo: http://www.ferremundo.com.ar/fxm.php

En IE8 funciona bien y muestra todas las imágenes, pero en IE7 solo muestra la primera y nada mas.

Les dejo la inquietud. Muchas gracias

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.         $("img#loslog").show();
  3. });

Código CSS:
Ver original
  1. #loslog{Z-INDEX: 3; POSITION: absolute; border: solid 1px #cccccc; display: none } //
  2. #marcas ul{list-style:none; margin:0; padding:0; }
  3. #marcas li{ height:60px; width:152px; margin: 0px 14px 28px 14px;  padding:0; float:left; }

Código HTML:
Ver original
  1. <ul id="marcas">
  2.     <li><img id="loslog" src="marcas/3m.gif"></li>
  3.     <li><img id="loslog" src="marcas/atomlux.gif"></li>
  4.     <li><img id="loslog" src="marcas/biassoni.jpg"></li>
  5.     <li><img id="loslog" src="marcas/blackdecker.gif"></li>
  6.     <li><img id="loslog" src="marcas/bremen.gif"></li>
  7.     <li><img id="loslog" src="marcas/dayton.gif"></li>
  8. </ul>
  #10 (permalink)  
Antiguo 29/04/2010, 09:41
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: plugin jquery no funciona en IE7

Cita:
Iniciado por AndresMtti Ver Mensaje
Bueno, todavía sigo sin solucionar mi problema...
Es simple, tienes un error de concepto, bebes tener claro que los id son unicos, es decir que no puedes tener las imagenes con el mismo id, cambialo a class

quedaria asi

cambia esto
Código HTML:
$(document).ready(function()
	{
	$("img#loslog").aparece(100,300); // velocidad, duracion
	});
por esto
Código HTML:
$(document).ready(function()
	{
	$("img.loslog").aparece(100,300); // velocidad, duracion
	});
en el estilo cambia

Código HTML:
#loslog{Z-INDEX: 3; POSITION: absolute; border: solid 1px #cccccc; display:none  }
por
Código HTML:
.loslog{Z-INDEX: 3; POSITION: absolute; border: solid 1px #cccccc; display:none  }
y a tus imagenes cambia el ide por class

esto
<li><img id="loslog" src="marcas/3m.gif"></li>

por esto
<li><img class="loslog" src="marcas/3m.gif"></li>

saludos.

me funcion perfect en IE7 IE8, FF y hasta en IE6

saludos
__________________
http://chicho.ninja yiaaaa
  #11 (permalink)  
Antiguo 29/04/2010, 10:07
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 9 meses
Puntos: 101
Respuesta: plugin jquery no funciona en IE7

Tal cual! Es un problema de id. Al menos en tu ultimo ejemplo.
  #12 (permalink)  
Antiguo 29/04/2010, 10:24
 
Fecha de Ingreso: agosto-2003
Mensajes: 9
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: plugin jquery no funciona en IE7

Muchas gracias Cherivera! Funciona de maravilla.

http://www.ferremundo.com.ar/marcas.php

Comparto el efecto que dicho sea de paso, modestamente me salió espectacular.

Código Javascript:
Ver original
  1. jQuery.fn.aparece = function(vel,dur) {
  2.     this.each(function(i){
  3.         var $this = jQuery(this); //Convertimos a jQuery
  4.         $this.hide();
  5.         var margin = $this.width()/2; //92
  6.         var width  = $this.width(); //184
  7.         var height = $this.height(); //184
  8.         j = (i+1)*vel;
  9.         setTimeout(function(){
  10.             $this.stop().css({width:'0px', height:''+height+'px', marginLeft:''+margin+'px', opacity:'0.5'});
  11.             $this.stop().animate({width:''+width+'px', height:''+height+'px', marginLeft:'0px', opacity:'1'},{duration:dur});
  12.         },j);
  13.     });
  14. }
  15.  
  16.  
  17. $(document).ready(function(){
  18.         $("img.loslog").aparece(100,300); // velocidad, duracion
  19. });

Código CSS:
Ver original
  1. .loslog{Z-INDEX: 3; POSITION: absolute; border: solid 1px #cccccc; display:none }
  2. #marcas ul{list-style:none; margin:0; padding:0; }
  3. #marcas li{ height:60px; width:152px; margin: 0px 14px 28px 14px;  padding:0; float:left; }

Código HTML:
Ver original
  1. <img class="loslog" src="marcas/osram.gif" >
  #13 (permalink)  
Antiguo 29/04/2010, 11:09
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: plugin jquery no funciona en IE7

de nada AndresMtti :D
__________________
http://chicho.ninja yiaaaa
  #14 (permalink)  
Antiguo 23/06/2010, 09:53
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: plugin jquery no funciona en IE7

hola yo estoy tratando de cargar html en div dentro de la web y en firefox genial , pero en IE directamente se ve el html en blanco TOTAL no se ve nada de nada denada- que será?
el código que uso es

<script>
$(document).ready(function(){
var emi = "#menu1 a";
var rec = "#contenedor";
var src = "images/loading.gif";
var iid = "loading";
var pre = '<img src="'+src+'"id="'+iid+'"/>';
var spe = "slow";
$(emi).each(function(){
var href = $(this).attr("href");
$(this).click(function(){
$(rec).hide().after(pre).load(href, function() {$("#"+iid).remove();$(this).fadeIn(spe)});
return false;
});
});
});


</script>

y en cada link (que en realidad es una lista) ésto:

<li id="item"><a href="2007ultimo.html">2004-2008 </a></li>

en el div "contenedor " carga un html que, a su vez, tiene imágenes que se amplian en el mismo div" contenedor" pero en IE 7 ni me muetra web alguna. alguna ounta de qué podria estar pasando

en todos los html vinculo el archivo jquery y pongo en las etiquetas <script> el mismo código con la función.
alguin me puede ayudar? estoy por suicidarme je
  #15 (permalink)  
Antiguo 23/06/2010, 12:47
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 9 meses
Puntos: 101
Respuesta: plugin jquery no funciona en IE7

A mi parecer, no deberías declarar las variables antes de usar los selectores jquery:

Cita:
var emi = "#menu1 a";
var rec = "#contenedor";
var src = "images/loading.gif";
var iid = "loading";
var pre = '<img src="'+src+'"id="'+iid+'"/>';
var spe = "slow";
Dudo de que eso funcione. Aunque si lo hace, y queres usarlo, dale.

REspecto al problema, quizas tengas un problema de jerarquia? Me gustaría ver el html completo para evaluarlo. Pero se me hace que esto debe ir así:

var emi = "#menu1 li a";

es decir, con un li intermedio.
  #16 (permalink)  
Antiguo 23/06/2010, 13:07
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: plugin jquery no funciona en IE7

cambie el script por este:
<script>
$(document).ready(function(){
$("#menu1 a").each(function(){
var href = $(this).attr("href");
$(this).click(function(){
$("#contenedor").hide().load(href).fadeIn("slow" ); //Le damos efecto
$(this).attr({ href: "#"});
});
});
});

</script>

funciona perfectamente en firefox pero en IE 7 no abre nada, no aparecece ni error. nada.
eso es lo que me parece raro. funcionar funciona re bien, no tengo IE8 para testear.
alguna otra sugerencia?? realmente no tengo idea que puede ser
gracioas por la ayuda :)

Etiquetas: plugin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:28.