用哈希标签打开手风琴

时间:2012-01-20 00:28:46

标签: javascript accordion

我正在尝试打开基于URL哈希标记的手风琴。我发现了类似的反应,但每个都使用不同的手风琴。

HTML脚本如下:

<div class="contractable">
    <div class="header">
        <h1>Branding</h1>
        <a class="contractTrigger" href="#branded"></a>
    </div>
    <div id="branded" class="content">
        <div class="spacing">
            <p>text</p>
        </div>
    </div>
</div>

JS是:

$(function()
    {
        $('.contractable').each(function()
        {
            // Get natural height.
            var $contractable = $(this);
            var naturalHeight = $contractable.height();
            $contractable.data('naturalHeight', naturalHeight);             
            // Set default properties.
            $contractable.find('.content').addClass('closed').css(
            {
                'height': 0, 
                'overflow': 'hidden'
            });
        });

        $('.contractable .contractTrigger').click(function(e)
        {
            e.preventDefault();         
            var $trigger      = $(this);
            var $contractable = $trigger.parents('.contractable');
            var $content      = $contractable.find('.content'); 
            if($content.hasClass('open'))
            {
                $content.animate(
                {
                    'height': 0
                }, 300, function()
                {
                    $content.removeClass('open');
                    $content.addClass('closed');
                });

            }
                else
                {
                    $content.animate(
                    {
                        'height': $contractable.data('naturalHeight')
                    }, 300, function()
                    {
                        $content.removeClass('closed');
                        $content.addClass('open');
                    });
                }
            }
        });
    });

    function closeWindow() {
        parent.parent.GB_hide();
    }

我可以使用var hash_value = window.location.hash.replace('#','')轻松获取哈希标记。但我仍然坚持如何将哈希与div id匹配(因为会有几个不同的div),然后打开手风琴。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

分配事件后,执行此操作以模拟点击:

$(window.location.hash).click()