0

对为什么我的 JQuery 图像滑块在 Firefox 中不起作用感到困惑。在 Safari 和 Chrome 中工作正常,尚未在 IE 中测试。这是一个基本的点击按钮和下一张图片幻灯片,在这里查看它的实际效果:

http://www.alihaberfield.com/test/carouseltest/carouseltest.html

这是JQuery:

$(window).load(function() {


var theImage = $('.gallery_wrap ul li img');
var theWidth = 790;  
//wrap into mother div
$('.gallery_wrap ul').wrap('<div id="mother" />');                  
//assign height width and overflow hidden to mother
$('#mother').css({
    width: 790,
    height: 780,
    position: 'relative',
    overflow: 'hidden'      
});
    //get total of image sizes and set as width for ul 
var totalWidth = theImage.length * theWidth;
$('.gallery_wrap ul').css({
    width: function(){
    return totalWidth;  
}               
});     
$(theImage).each(       
    function(intIndex){             
            $(this).nextAll('a')
            .bind("click", function(){
                if($(this).is(".next")) {

                    $(this).parent('li').parent('ul').animate({
                        "margin-left": (-(intIndex + 1) * theWidth)             
                    }, 1000)                    

                } else if($(this).is(".previous")){

                    $(this).parent('li').parent('ul').animate({
                        "margin-left": (-(intIndex - 1) * theWidth)             
                    }, 1000)    


                } else if($(this).is(".startover")){

                    $(this).parent('li').parent('ul').animate({
                        "margin-left": (0)              
                    }, 1000)

                }
            });//close .bind()                                   
});//close .each()                      
});//doc ready

它基于这个简单的 jquery 滑块,我会注意到它在 Firefox 中有效:

http://brenelz.com/blog/build-a-content-slider-with-jquery/

该滑块和我的主要区别在于:

  1. 我正在使用较旧的 JQuery 库-由于遗留问题等原因,客户端需要。我使用的是 1.3.2。
  2. 我在 JQuery 的 ul 规则中添加了一个 .gallery_wrap 选择器,这样 JQuery 就不会用母 div 包装页面上的每个列表。
  3. 因为我知道图像的大小,所以我将 var theWidth 的大小设置为 790px,这解决了这个画廊没有显示在灯箱内的问题(没有静态宽度,大小计算都不适用于设置为显示:无)。

假设 1:由于旧的 JQuery 版本,负边距行为在 Firefox 中没有触发。假设 2:添加静态宽度与 Firefox 对负边距的计算相混淆。

任何更好的假设,有关它无法运行的其他浏览器/其他失败方式的信息,或有关如何修复它的建议将不胜感激。

4

1 回答 1

0

正确答案:脚本无法与旧版本的 JQuery 一起正常工作。

不能在使用 Jquery 1.3 的 Firefox(或 IE,因为它发生)中工作。在所有带有 JQuery 1.4 及更高版本的浏览器中都能完美运行。

通过加载两个库并使用此页面上优秀答案中提供的 JQuery noconflict 结构解决了问题:

jQuery No Conflict 仍然与其他版本的 jQuery 冲突

于 2012-08-02T12:21:02.180 回答