Jcarousel не работает должным образом в Chrome

в моем коде я создаю ul li для jcarousel, т.е. его список данных (например, список фотографий)

когда количество фотографий больше, чем 4, jcarousel позволяет горизонтальную прокрутку, чтобы увидеть следующие 4 фотографии.

ПРОБЛЕМА: когда я запускаю код в хроме, горизонтальные прокрутки остаются заблокированными, даже если число фотографий больше 4, в других браузерах оно отлично работает.

heres код, который импортирует файл jquery:

     function SetCarousel() {

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

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

        }

Я попытался обратиться к файлу .js @top of page (aspx) не работал.. даже сделал это хуже

Справка по PLS

Ответы

Ответ 1

Я исправил это на сайте, над которым я работал, комментируя код, который указывает Safari; по какой-то причине исправления, которые они помещают, как представляется, устарели. Я использую jQuery 1.3.2.

Вот код, который я удалил:

jquery.carousel.js: вокруг строки 184

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

jquery.carousel.js: вокруг линии 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;
            }*/

Надеюсь, это исправление поможет вам и другим, кто сталкивается с проблемой!

Ответ 2

Я попробовал решение номер 1, и он сработал. Хороший человек, большое спасибо. Я просто прокомментировал строки:

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

Ответ 3

Это потрясающе, моя проблема решена спасибо jsims281

В моем случае я использовал

jquery.jcarousel.min

и комментарий строка № 134 до 139

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

и строка № 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
            }*/

Ответ 4

В версии 0.2.9 это сработало для меня.

Я взял сокращенную версию и бросил ее через http://jsbeautifier.org и изменил следующее в строке 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()

к

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

Ответ 5

Я полагаю, вы имеете в виду это jCarousel?

Если да, то какую версию jQuery вы используете?

Потому что у этого плагина не было никаких обновлений в течение длительного времени. Текущая версия - 0.2.3 с 07 апреля 2008 года, и в этой версии для этой версии указано

Версия 0.2.3 - 2008-04-07 Обновлено
- jQuery до версии 1.2.3. Фиксированный
- (надеюсь) проблемы с Safari

Я помню, что этот плагин имеет некоторые проблемы с новыми версиями jQuery, начиная с 1.2.6 (сегодня мы уже на 1.3.2).

Также вы должны знать, что текущая версия jCarousel появилась до первой версии Google Chrome (версия 0.2 вышла 08 сентября 2008 г.).

Ответ 6

очень приятно... jquery.carousel.js: вокруг строки 184

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

jquery.carousel.js: вокруг строки 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;
        }*/

Это работает очень хорошо.... Спасибо....

Ответ 7

Кажется, что в версии 0.28 осталось только одно условие, и это задерживает завершение установки

На основе Jsims281 (спасибо Jsims) я искал свернутую версию jCarousel v0.28 и нашел следующую строку:

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

должен прокомментировать вышеуказанное:

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