Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
突出显示jQuery手风琴菜单中的活动链接_Jquery_Wordpress_Accordion - Fatal编程技术网

突出显示jQuery手风琴菜单中的活动链接

突出显示jQuery手风琴菜单中的活动链接,jquery,wordpress,accordion,Jquery,Wordpress,Accordion,所以我在WordPress网站上找到了这个jQuery手风琴菜单代码。一切正常,但当我单击子菜单项并加载页面时,手风琴关闭。我想在页面加载时打开当前部分,以便您可以查看您所在的页面 我尝试了很多不同的方法,在WordPress分配给的父级的类上使用.slideDown('normal')。当前菜单父级,等等。但遗憾的是,还没有任何效果。我不太熟悉JavaScript/jQuery,希望有人能帮我解决这个问题 以下是当前jQuery代码: ( function( $ ) { $( docu

所以我在WordPress网站上找到了这个jQuery手风琴菜单代码。一切正常,但当我单击子菜单项并加载页面时,手风琴关闭。我想在页面加载时打开当前部分,以便您可以查看您所在的页面

我尝试了很多不同的方法,在WordPress分配给
  • 的父级
  • 的类上使用
    .slideDown('normal')
    。当前菜单父级
  • ,等等。但遗憾的是,还没有任何效果。我不太熟悉JavaScript/jQuery,希望有人能帮我解决这个问题

    以下是当前jQuery代码:

    ( function( $ ) {
        $( document ).ready(function() {
    
            $('#cssmenu > ul > li > a').click(function() {
    
                $('#cssmenu li').removeClass('active');
                $(this).closest('li').addClass('active');   
                var checkElement = $(this).next();
    
                if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
                    $(this).closest('li').removeClass('active');
                    checkElement.slideUp('normal');
                }
    
                if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
                    $('#cssmenu ul ul:visible').slideUp('normal');
                    checkElement.slideDown('normal');
                }
    
                if($(this).closest('li').find('ul').children().length == 0) {
                    return true;
                } else {
                    return false;   
                }       
    
            });
        });
    } )( jQuery );
    

    是我从哪里得到它的。

    没有看到您的菜单输出,有点难说。。。但是,您需要做的是,不仅为正在查看的页面触发单击事件,还为其祖先触发单击事件。并在单击事件之外执行此操作。类似这样的内容(您的代码稍微修改):

    作为旁注,我知道这并不能回答你的直接问题。。。但是通过使用CSS转换而不是JS,整个过程可以更容易地完成。。。而且更可靠,对JS的依赖性更小。您确实使用少量的JS来添加/删除类,但css控制动画


    如果JS被禁用,你可以有一个更优雅的降级。。。使用css:hover伪命令允许手风琴仍然工作。此外,您可以使用默认的WordPress菜单类,通过css在页面加载时打开手风琴,而不是依赖JS来查找应该打开哪一个。。。只是一个想法。

    一个想法:您可以在页面加载时将其中一个的ID设置为url参数(例如:domain.com/page?tab_ID=5),并显示出来。这不是以编程方式打开jQuery accordion小部件的选项卡的信息吗?这只是我找到的一些自定义代码。不确定这在这种情况下是否有效(就像我说的,我是jQuery新手,所以如果你不同意,我会尝试使用它)。想法?肯定不一样,但原则是相似的。您可以在教程页面的源代码中看到在第315行声明的click事件。嘿,谢谢,这使它起作用了。。。但只有当我把你写的.trigger行放在.click函数之后。至于CSS的建议。是的,我同意,也许下次吧。:)再次感谢!很高兴它成功了。在函数创建之后调用这些函数是有意义的,因为它甚至不知道函数存在我不认为这是一个通过…嘿,我知道这是一个非常旧的帖子,但代码不适合我,即使我把。触发后。点击功能-任何人都可以请帮助!
    ( function( $ ) { $( document ).ready(function() {
    
        $('.current-page-ancestor > a').trigger('click');
        $('.current-menu-item > a').trigger('click');
    
        $('#cssmenu > ul > li > a').click(function() {
    
            $('#cssmenu li').removeClass('active');
            $(this).closest('li').addClass('active');   
            var checkElement = $(this).next();
    
            if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
                $(this).closest('li').removeClass('active');
                checkElement.slideUp('normal');
            }
    
            if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
                $('#cssmenu ul ul:visible').slideUp('normal');
                checkElement.slideDown('normal');
            }
    
            if($(this).closest('li').find('ul').children().length == 0) {
                return true;
            } else {
                return false;   
            }       
    
        });
    });
    
    } )( jQuery );