0


我正在创建一个画廊滑块,它在大多数浏览器上都可以正常工作,但不能在 IE 上工作

`(函数($){

$.fn.AD_Slider = function(options)
{
    parent = this;
    parent.append('<span id="AD_slider_holder"></span>')
    $('#AD_slider_holder')
            .css
            (
                {
                    'position': 'absolute',
                    'bottom': '0px',
                    'left':'0px'
                }
            )
    no_of_items = 0;
    var settings = $.extend(
        {
            item_width: 200,
            animation_time: 1000,
            wait_time: 1000,
            slider_width:400,
            height:300
        },
        options
    );
    this.css
    (
        {
            'position':'relative',
            'width':  settings.slider_width + 'px',
            'height': settings.height + 'px',
            'border':'1px solid',
            'overflow':'hidden'
        }
    )
    $(this).children('div').each(function(){
        parent.children('#AD_slider_holder').append('<div />');
        parent.children('#AD_slider_holder')
            .each(
                function()
                {
                    $(this).children('div')
                        .css
                        (
                            {
                                'width':'10px',
                                'height':'10px',
                                'border':'1px solid',
                                'margin':'5px',
                                'float':'left'
                            }
                        )
                }
            )
        $(this).css
        (
            {
                'position': 'absolute',
                'top': '0px',
                'left': '0px',
                'width':settings.item_width,
            }
        );  
        $(this).hide();

    })
    parent.children('#AD_slider_holder').each(
    function(){
        $(this).children('div').click(
            function()
            {
                clearTimeout(animator_time_out);
                animate_next(parent,$(this).index());
            }
        );
    })
    animate_next(this);
};
function animate_next(parent,index_no)
{
    if(!index_no)
    {
        index_no = 0;
    }
    no_of_elements = parent.children('div').length;
    if(no_of_elements == index_no)
    {
        index_no = 0;
    }
    parent.children('div').fadeOut(); 
    parent.children('div:eq('+index_no+')').fadeIn(2000);
    parent
        .children('#AD_slider_holder')
            .each
            (
                function()
                {
                    $(this).children().css({'background':'none'})
                }
            )
    parent.children('#AD_slider_holder')
        .each(
            function()
            {
                $(this).children('div:eq('+index_no+')')
                    .css
                    (
                        {
                            'background':'red'
                        }
                    )
            }
        )
    index_no++;
    animator_time_out = setTimeout(function(){animate_next(parent,index_no)},5000)
}

})( jQuery );`

我正在使用最新的 jquery

4

1 回答 1

3

我不知道,但我建议删除末尾的逗号

'width':settings.item_width,

    $(this).css
    (
        {
            'position': 'absolute',
            'top': '0px',
            'left': '0px',
            'width':settings.item_width,
        }
    );  

如果对象的最后一个元素后面有逗号,Internet Explorer 不喜欢它。

于 2013-01-26T16:26:53.933 回答