在我的代码中,我为jcarousel创建了一个ul li,即它的数据列表(例如照片列表)
当照片数量大于4时,jcarousel会启用水平滚动,以便查看下4张照片。
问题: 就是当我在chrome中运行代码时,即使照片数量超过4,水平卷轴仍保持禁用状态,在其他浏览器中它完美运行..
继承了导入jquery文件的代码:
function SetCarousel() {
$.getScript('<%=Html.LibUrl("jplugins/jquery.jcarousel.pack.js")%>',
function(result)
{
jQuery('#CarouselUL').jcarousel({
visible: 4
});
});
}
我试过引用.js文件@页面顶部(aspx)无法正常工作..甚至让它变得更糟
请帮助
答案 0 :(得分:15)
我通过评论指定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;
}*/
希望此修复程序可以帮助您和遇到问题的其他人!
答案 1 :(得分:1)
我尝试了1号解决方案,但它确实有效。好男人,非常感谢你。 我只是评论了这些界限:
/*if ($.browser.safari) {
this.buttons(false, false);
$(window).bind('load', function() { self.setup(); });
} else */
this.setup();
答案 2 :(得分:1)
这很棒我的问题解决了 谢谢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
}*/
答案 3 :(得分:1)
在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()
答案 4 :(得分:0)
我想你的意思是jCarousel?
如果是,您使用的是哪个jQuery版本?
因为此插件现在很长时间没有任何更新。当前版本从2008年4月7日起为0.2.3,此版本的更改日志为
版本0.2.3 - 2008-04-07更新了
- jQuery到1.2.3版。固定
- (希望)与Safari有关的问题
我记得这个插件在从1.2.6开始的新jQuery版本中遇到一些问题(今天我们已经是1.3.2)。
此外,您必须知道当前版本的jCarousel出现在Google Chrome的第一个版本之前(版本0.2于2008年9月8日发布)。
答案 5 :(得分:0)
/ * if($ .browser.safari){ this.buttons(false,false); $(window).bind('load',function(){self.setup();}); 其他* / 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;
}*/
这非常有效....谢谢......
答案 6 :(得分:0)
在版本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()})):*/