Как автоматически открыть «гармошку» для первого выбора? - PullRequest
2 голосов
/ 22 января 2012

Я купил шаблон с аккордеоном (возможно, на заказ?) И пытаюсь автоматически открыть первую страницу (слайд аккордеона).

Он код:

 Cufon.now();
$(window).load(function(){

     $('#content>dd').css({display:'block'})


     $('#thumbs').jScrollPane({
       showArrows:false,
       scrollbarWidth:28,
       dragMaxHeight:82
    })

     $('#thumbs li a').live('click',function(){
        $('#pic').attr('src',$(this).attr('href')).bind('load',function(){
            $(this).css({opacity:0}).stop().animate({opacity:1})
        })
        return false
    }).each(function(){
        var tmp=new Image()
        tmp.src=this.href
    })

    $('#content>dd').css({display:'none'})
})

$(function(){
    $('#content:not(.nav_block)>dt:not(.active) a,footer .privacy:not(.active) a[rel=privacy],a[rel=nav]').live('click',function(){
        var next=this.rel=='privacy'?$('#privacy'):this.rel=='nav'?$(this.href.slice(this.href.indexOf('#'))):$(this).parent().next(),
            width=next.width(),
            parent=next.parent(),
            visible=parent.find('>dd:visible').css({overflow:'hidden'})
        parent.addClass('nav_block')
        $('#content>dt,.privacy').removeClass('active')
        $(this).parent().addClass('active')
        if(this.rel=='privacy'||this.rel=='nav')$('#content>dt>a').removeClass('active').animate({opacity:0})
        if(parent.css('left')!=0)
            next.parent().animate({left:0})
        next.show().css({width:'64px'}).stop().animate({width:width+'px'},{
          step:visible.length?function(now){
            visible.width(width-now)
        }:'',complete:function(){
            next.css({overflow:'visible'})
            visible.css({width:width+'px'}).hide()
            parent.removeClass('nav_block')
        }})
        return false
    })

    $('.active a,#content.nav_block').live('click',function(){
        return false
    })

    var imgs=[]
    $('#page1 img').each(function(){
        imgs.push(this)
    })
    $(imgs[0]).siblings('img').css({opacity:0})

    $('#page1 a.prev,#page1 a.next').css({opacity:0}).live('click',function(){
        var img,pr=$(imgs[0])
        if($(this).hasClass('next'))
            imgs.push(imgs.shift())
        else
            imgs.unshift(imgs.pop())
        img=$(imgs[0]).show()
        img.animate({opacity:1},{step:function(now){
            pr.css({opacity:1-now})
        }})
        return false
    })

    $('#page1 .inner')
        .live('mouseover',function(){$('a.prev,a.next',this).stop().animate({opacity:1})})
        .live('mouseout',function(){$('a.prev,a.next',this).stop().animate({opacity:0})})

    $('#content>dt>a:not(.active)').css({opacity:0})
    .live('mouseover',function(){
        $(this).stop().animate({opacity:1})
    })
    .live('mouseout',function(){
        $(this).stop().animate({opacity:0})
    })
    .live('click',function(){
        $(this).addClass('active').parent().siblings().find('>a').removeClass('active').stop().animate({opacity:0})
    })
})

Любая помощь приветствуется, я просматривал бесконечные темы, и у всех есть решения, которые не работали (почему я думаю, что это нестандартный аккордеон или что-то в этом роде). Я начальный уровень с JQuery, я знаю базовые Java, VB, Objective C, так что не полный новичок, но легко :).

Большое спасибо заранее!

1 Ответ

1 голос
/ 23 января 2012

Этого можно добиться, щелкнув программно по заголовку «MAIN»:

// this will trigger a 'click' event on the first element (which is the "MAIN")
$('#content dt:first a').trigger('click');

Добавьте эту строку в конце вашего скрипта, перед последним });.

Подробнее о:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...