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()})):*/