javascript - 用散列标签打开 Accordion

标签 javascript accordion

我正在尝试根据 URL 散列标签打开 Accordion 。我发现了类似的响应,但每个响应都使用不同的 Accordion 。

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),然后打开 Accordion 。任何帮助将不胜感激。

最佳答案

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

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

关于javascript - 用散列标签打开 Accordion ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8935337/

相关文章:

javascript - 异步旅行推销员子旅行的本地搜索启发式

JavaScript 后缀数学

javascript - 在js中更改类样式

jquery - 一页上不会有超过 9 个 Accordion 吗?

javascript - 用 jQuery 检测换行符?

javascript - 基于 PHP 条件在页面刷新时将复选框设置为 CHECKED

javascript - 多个 div - 水平滑出内容

Mootools Accordion ,每个 Pane 内都有一个“下一步”按钮

javascript - Jquery Accordion 无法正常工作

c# - 从 ObservableCollection 中删除项目时 WPFToolkit Accordion ArgumentOutOfRangeException