【问题标题】:Open specific accordion tab using external link and hash使用外部链接和哈希打开特定的手风琴选项卡
【发布时间】:2014-12-02 02:48:24
【问题描述】:

大家好,我是 js 新手,很抱歉我在这里提出的问题,我知道它是一个基本的,我现在正在使用手风琴插件,该插件收集用户想要放入手风琴的所有文章并在其中查看手风琴我的问题是如何在手风琴项目内的每篇文章有动态 id 时打开特定选项卡。我试图使用链接 http//:example.com#id 来挂钩项目以在手风琴中打开特定选项卡这里是插件代码。 在代码内部挂钩并触发点击事件以打开手风琴插件中的特定

!(函数($){

$.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);

【问题讨论】:

  • 您可以通过更具体地说明您想知道的内容或无效的内容来使这个问题变得更好。
  • 我很抱歉,格雷格上面的代码正在运行,我想在代码中挂钩并使用链接中的哈希触发 onclick 事件提前谢谢..

标签: javascript jquery jquery-plugins


【解决方案1】:

有一点,你可以用.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
    }
 }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
  • 2022-08-04
  • 2013-05-27
相关资源
最近更新 更多