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