使用外部链接和哈希打开特定的折叠选项卡

时间:2014-12-02 02:48:24

标签: javascript jquery jquery-plugins

嗨所有我在js的新人抱歉我现在在这里问我知道它是一个基本的,我现在正在使用手风琴插件收集用户想要放入手风琴的所有文章手风琴中查看它我的问题是当手风琴项目中每个文章有动态id时如何打开特定标签..我试图使用链接挂钩项目,http //:example.com #id打开特定标签手风琴这里是插件代码。 挂钩代码并触发click事件以打开手风琴插件中的特定内容

!(函数($){

$.fn.spAccordion = function(options){

    var settings = $.extend({
        hidefirst: 0
    }, options);

    return this.each(function(){

        var $items      = $(this).find('>div');
        var $handlers   = $items.find('.toggler');
        var $panels     = $items.find('.sp-accordion-container');

        if( settings.hidefirst === 1 )
        {
            $panels.hide().first();
        }
        else
        {
            $handlers.first().addClass('active');
            $panels.hide().first().slideDown();
        }

        $handlers.on('click', function(){

            if( $(this).hasClass('active') )
            {
                $(this).removeClass('active');
                $panels.slideUp();
            }
            else
            {
                $handlers.removeClass('active');
                $panels.slideUp();
                $(this).addClass('active').parent().find('.sp-accordion-container').slideDown();
            }

            event.preventDefault();
        });

    });
};

})(jQuery的);

1 个答案:

答案 0 :(得分:0)

有一件事是,您可以使用.children('div')代替.find('>div')

但是如果你想获得设置哈希的内容,可以使用window.location.hash。默认情况下,它用于标识元素ID。理想情况下,你可以通过

获得想要显示的元素
if (window.location.hash) {
    var $selected = $('#'+window.location.hash);
    if ($selected.length) {
        // Do what you need to show this element
    }
 }