2010-01-04 3 views
13

in meinem Code Ich bin ein ul li für die jcarousel dh seine eine Liste von Daten zu erstellen (ex. Liste des Fotos)jcarousel nicht richtig in Chrome arbeitet

, wenn das Foto Zählung mehr als 4 sagen, Das Jcarousel ermöglicht horizontales Scrollen, um die nächsten 4 Fotos zu sehen.

PROBLEM: ist, wenn ich den Code in Chrom laufen die horizontalen Bildlauf deaktiviert bleiben, auch wenn Anzahl der Fotos mehr als 4 ist, in anderen Browsern es perfekt funktioniert ..

heres der Code, der Jquery-Datei importiert:

 function SetCarousel() { 

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

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

     } 

ich versucht habe js-Datei @ oben auf der Seite (aspx) beziehen funktionierte nicht ..even machte es noch schlimmer

pls help

+4

Es ist keine Lösung, aber jQuery Kreisverkehr ist eine völlig mehr tolles Plugin für Karussells. Sag einfach ... http://fredhq.com/projects/roundabout/ –

+0

nice heads up, das sieht gut aus – jsims281

+0

Roundabout ist ein ganz anderer Stil, jedoch. – JAL

Antwort

0

Ich nehme an, Sie meinen jCarousel?

Wenn ja, welche jQuery-Version verwenden Sie?

Da dieses Plugin seit langer Zeit keine Updates mehr hat. Die aktuelle Version ist 0.2.3 vom 7. April 2008 und das Changelog für diese Version sagt

Version 0.2.3 - 2008-04-07 Aktualisiert
- jQuery auf Version 1.2.3. Feste
- (hoffentlich) Probleme mit Safari

Ich erinnere mich an dieses Plugin einige Probleme mit neueren Versionen jQuery mit beginnend mit 1.2.6 (wir heute auf 1.3.2 sind bereits).

Auch Sie müssen sich bewusst sein, dass die aktuelle Version von jCarousel erschien vor der ersten Veröffentlichung von Google Chrome (Version 0.2 kam am 08. September 2008).

+0

Ich benutze eine gehackte Version in der Produktion und es funktioniert gut unter jQuery 1.4.2. Ich musste für Chrome und Safari keine Änderungen vornehmen, damit es insgesamt funktioniert, aber die hier beschriebenen Fixes haben das Laden geglättet. Du hast Recht, dass das Plug-in im Allgemeinen ziemlich veraltet ist und seit langem keine Updates mehr gesehen hat. Über Zeit für eine Gabel, würde ich sagen. – JAL

15

Ich habe dies auf einer Website, an der ich gerade arbeitete, behoben, indem ich den Code, der Safari spezifiziert, auskommentiert habe; Aus irgendeinem Grund scheinen die Fixes, die sie eingefügt haben, obsolet geworden zu sein. Ich benutze jQuery 1.3.2.

Hier ist der Code, den ich gezupft:

jquery.carousel.js: um die Linie 184

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

jquery.carousel.js: um die Linie 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; 
      }*/ 

Hoffentlich wird diese Lösung Ihnen und anderen helfen, die auf das Problem stoßen!

+0

Dies rettete mich definitiv vor viel Graben :) Danke! –

+0

Das ist mir gerettet oh la la :) Danke – Aziz

+0

Ich habe gerade jCarousel auf einer Website, wo das Karussell lädt in einem Leuchtkasten modalen Dialog (Fancybox-Plugin) implementiert, und ich habe Probleme nur auf Safari. Ich habe diese Lösung ausprobiert und die Browser-Sniff-Blöcke auskommentiert, aber keine Würfel. Ich habe festgestellt, dass, wenn ich mit der rechten Maustaste auf das Bild im Karussell klicke und das Element inspiziere, das Karussell zu arbeiten beginnt. Sie können es unter http: //www.truthaboutsurfacemining sehen.com/Environment/WhenMiningEnds –

1

Ich versuchte Nummer 1 Lösung und es hat funktioniert. Netter Mann, vielen Dank. ich nur kommentiert die Linien:

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

sehr schön ... jquery.carousel.js: um die Linie 184

/* if ($ .browser.safari) { dieses.Tasten (falsch, falsch); $ (window) .bind ('load', function() {self.setup();}); } sonst */ this.setup();

jquery.carousel.js: um die Linie 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; 
     }*/ 

Dies funktioniert sehr gut .... Danke ....

1

Diese ehrfürchtige ist mein Problem jsims281 Dank behoben ist

In meinem Fall habe ich

jquery.jcarousel.min

verwendet

und der Code kommentiert ist Linie kein 134-139

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

und Linie Nr 470-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

Es scheint nur eine Bedingung links in Version 0.28 und verursacht Verzögerungen bei der Abschluss des Setups

Basierend auf Jsims281 (danke Jsims), suchte ich die minimierte Version von jCarousel v0.28 und fand diese Zeile wie folgt ing:

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

sollte die obige Kommentar sein:

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

In Version 0.2.9 für mich gearbeitet.
nahm ich die verkleinerte Version und warf ihn durch die http://jsbeautifier.org und verändert die folgende auf der Leitung 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() 

zu

}, 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()