2010-01-04 28 views
13

en mi código que estoy creando un li ul para el jCarousel es decir, su una lista de datos (ej. La lista de la foto)jCarousel no funciona correctamente en Chrome

cuando el recuento de fotos es decir más de 4, el jcarousel permite el desplazamiento horizontal para ver las siguientes 4 fotos.

PROBLEMA: es cuando corro el código en cromo los rollos horizontales permanecen desactivadas incluso si el número de fotos es más de 4, en otros navegadores funciona perfectamente ..

aquí está el código que importa el archivo de jQuery:

 function SetCarousel() { 

      $.getScript('<%=Html.LibUrl("jplugins/jquery.jcarousel.pack.js")%>', 
function(result) 
       { 

       jQuery('#CarouselUL').jcarousel({ 
        visible: 4 
       }); 
      }); 

     } 

he intentado refiriéndose Js archivo @ parte superior de la página (aspx) no funcionó ..even lo hizo peor

pls ayudar

+4

No es una solución, pero jQuery Roundabout es un totalmente más impresionante plugin para carruseles. Solo digo ... http://fredhq.com/projects/roundabout/ –

+0

buen mano a mano, esto se ve bien – jsims281

+0

Rotonda es un estilo completamente diferente, sin embargo. – JAL

Respuesta

0

Supongo que te refieres a esto jCarousel?

En caso afirmativo, ¿qué versión de jQuery está utilizando?

Porque este complemento no ha tenido actualizaciones durante mucho tiempo. La versión actual es 0.2.3 del 07 abril de 2008 y el registro de cambios para esta versión dice

Versión 0.2.3 - 2008-04-07 Actualizado
- jQuery a la versión 1.2.3. Fijo
- (esperemos) problemas con Safari

Recuerdo este plugin teniendo algunos problemas con las nuevas versiones de jQuery que empiezan por 1.2.6 (Hoy nos encontramos en 1.3.2 ya).

También debe tener en cuenta que la versión actual de jCarousel apareció antes del primer lanzamiento de Google Chrome (la versión 0.2 salió el 08 de septiembre de 2008).

+0

Uso una versión pirateada en producción y está funcionando correctamente en jQuery 1.4.2. No tuve que hacer ningún cambio para Chrome y Safari para que funcione en general, pero las correcciones que se describen aquí han suavizado la carga. Tiene razón en que, en general, el complemento está desactualizado y no ha visto ninguna actualización en mucho tiempo. Sobre la hora de un tenedor, diría. – JAL

15

Lo arreglé en un sitio en el que estaba trabajando al comentar el código que especifica Safari; por alguna razón, las correcciones que introdujeron parecen haberse quedado obsoletas. Estoy usando jQuery 1.3.2.

Aquí está el código que he eliminada:

jquery.carousel.js: alrededor de la línea 184

/*if ($.browser.safari) { 
     this.buttons(false, false); 
     $(window).bind('load', function() { self.setup(); }); 
    } else */ 
     this.setup(); 

jquery.carousel.js: alrededor de la línea 858

  /*if (p == 'marginRight' && $.browser.safari) { 
      var old = {'display': 'block', 'float': 'none', 'width': 'auto'}, oWidth, oWidth2; 

      $.swap(el, old, function() { oWidth = el.offsetWidth; }); 

      old['marginRight'] = 0; 
      $.swap(el, old, function() { oWidth2 = el.offsetWidth; }); 

      return oWidth2 - oWidth; 
      }*/ 

¡Esperamos que esta solución te ayude a ti y a los demás a encontrar el problema!

+0

Esto definitivamente me salvó de una gran cantidad de excavaciones :) ¡Gracias! –

+0

Eso me salvó oh la la :) Gracias – Aziz

+0

Acabo de implementar jCarousel en un sitio donde se carga el carrusel en un cuadro de diálogo modal de caja de luz (complemento fancybox), y solo estoy enfrentando problemas en Safari. Intenté esta solución y comenté los bloques de detección de navegador, pero no los dados. Descubrí que cuando hago clic derecho en la imagen en el carrusel e inspecciono el elemento, el carrusel comienza a funcionar. Puede verlo sucediendo en http: //www.truthaboutsurfacemining.com/Environment/WhenMiningEnds –

1

Intenté la solución número 1 y funcionó. Buen hombre, muchas gracias. acabo comentaba las líneas:

/*if ($.browser.safari) { 
    this.buttons(false, false); 
    $(window).bind('load', function() { self.setup(); }); 
} else */ 
    this.setup(); 
0

muy agradables ... jquery.carousel.js: alrededor de la línea 184

/* if ($ .browser.safari) { esto.botones (falso, falso); $ (ventana) .bind ('load', function() {self.setup();}); } else */ this.setup();

jquery.carousel.js: alrededor de la línea 858

 /*if (p == 'marginRight' && $.browser.safari) { 
     var old = {'display': 'block', 'float': 'none', 'width': 'auto'}, oWidth, oWidth2; 

     $.swap(el, old, function() { oWidth = el.offsetWidth; }); 

     old['marginRight'] = 0; 
     $.swap(el, old, function() { oWidth2 = el.offsetWidth; }); 

     return oWidth2 - oWidth; 
     }*/ 

esto está funcionando muy bien .... Gracias ....

1

Esto es impresionante se resuelve mi problema gracias jsims281

En mi caso he utilizado

jquery.jcarousel.min

y el código comentado es línea n ° 134 a 139

/*if(!q&& i.browser.safari){ 
      this.buttons(false,false); 
      i(window).bind("load.jcarousel",function(){ 
       g.setup() 
       }) 
      }else */ this.setup() 
      }; 

y alinee ninguna 470 a 484

/*if(c=="marginRight"&&i.browser.safari){ 
      var d={ 
       display:"block", 
       "float":"none", 
       width:"auto" 
      },e,f; 
      i.swap(b,d, function(){ 
       e=b.offsetWidth 
       }); 
      d.marginRight=0; 
      i.swap(b,d,function(){ 
       f=b.offsetWidth 
       }); 
      return f-e 
      }*/ 
0

Parece sólo una condición dejó en la versión 0.28 y causa retraso en el completando la configuración

Basado en Jsims281 (gracias Jsims), busqué la versión minimizada de jCarousel v0.28 y encontré esa línea como sigue ing:

!m&&g.browser.safari?(this.buttons(!1,!1),g(window).bind("load.jcarousel",function(){e.setup()})): 

deben comentar lo anterior a ser:

/*!m&&g.browser.safari?(this.buttons(!1,!1),g(window).bind("load.jcarousel",function(){e.setup()})):*/ 
1

En la versión 0.2.9 Esto funcionó para mí.
Tomé la versión miniaturizada, y la arrojó a través de la http://jsbeautifier.org y le cambió el siguiente en la línea 95

}, null !== this.options.initCallback && this.options.initCallback(this, "init"), !c && d.isSafari() ? (this.buttons(!1, !1), a(window).bind("load.jcarousel", function() 
{ 
l.setup() 
})) : this.setup() 

a

}, null !== this.options.initCallback && this.options.initCallback(this, "init"), !c /*&& d.isSafari() ? (this.buttons(!1, !1), a(window).bind("load.jcarousel", function() 
    { 
     l.setup() 
    })) :*/ this.setup()