2016-09-14 63 views
0

我目前正在试图使菜单点击时,这是扩展菜单父母拓展,保持开放,一个孩子直到点击,那么用户应采取该页面,菜单还是应该在达到该网站时进行扩展。 (目前它崩溃了)。让孩子是否是当前活动

我目前已经得到了部分,我有一个菜单,展开和显示孩子点击时。它目前用javascript制作。我正在用wordpress制作菜单,并且wordpress会自动将类“current-menu-item”添加到正在访问的li(如果有帮助的话)。

var clickMenu = function() { 
 
\t var getEls = document.getElementById("menu-shopmenu").getElementsByTagName("LI"); 
 
\t var getAgn = getEls; 
 

 
\t for (var i=0; i<getEls.length; i++) { 
 
\t \t \t getEls[i].onclick=function() { 
 
\t \t \t \t for (var x=0; x<getAgn.length; x++) { 
 
\t \t \t \t getAgn[x].className=getAgn[x].className.replace("unclick", ""); 
 
\t \t \t \t getAgn[x].className=getAgn[x].className.replace("click", "unclick"); 
 
\t \t \t \t } 
 
\t \t \t if ((this.className.indexOf('unclick'))!=-1) { 
 
\t \t \t \t this.className=this.className.replace("unclick", "");; 
 
\t \t \t \t } 
 
\t \t \t \t else { 
 
\t \t \t \t this.className+=" click"; 
 
\t \t \t \t } 
 
\t \t \t } 
 
\t \t \t getEls[i].onmouseover=function() { 
 
\t \t \t \t this.className+=" hover"; 
 
\t \t \t } 
 
\t \t \t getEls[i].onmouseout=function() { 
 
\t \t \t \t this.className=this.className.replace("hover", ""); 
 
\t \t \t } 
 
\t \t } 
 
\t } 
 
\t 
 
window.addEventListener("load", clickMenu);

现在,我只是寻求帮助,使其保持扩张,一旦新的页面被加载。

另外,这两个函数会在设计中产生冲突吗?

+0

大家好,我又试了你的方法后,我在你的参考检查语法,现在有用。 但是还有一些新的问题。如果我将来在两个不同的父类别下应该有一个子类别A,那么它们都将被扩展。 此外,由于它是一个网上商店即时通讯工作,我想在查看产品时扩展菜单。 – Vegapunk

回答

0

您可以检查current-menu-item元素的“父”。并应用display:block或任何其他的CSS,使菜单元素可见。 检查下面的代码是否符合您的要求。

$(document).ready(function(){ 
    $(".current-menu-item").parent("your_parent_ul_div").css("display": "block"); 
}); 

参考 - https://api.jquery.com/parent/


参考 - >Expand parent menu if child menu is selected

参考 - >https://webdesignerhut.com/active-class-navigation-menu/

+0

感谢您的回答。 这里是一个链接到菜单im试图创建,我以为你想看到的HTML。不要介意混乱:) http://web14.simo9928.iba-abakomp.dk/wordpress/produkt-kategori/fiskegrej/endegrej/spinnere/ 我试过你的例子没有运气。 目前尝试此: $(文件)。就绪(函数(){ VAR pgurl = window.location.href.substr(window.location.href.lastIndexOf( “/”)+ 1); \t $ (“.sub-menu li a”)。each(function(){if($(this).attr(“href”)== pgurl) $(this).addClass(“active”); } ) }); 任何帮助表示赞赏。 – Vegapunk

+0

我在哪里添加了活动{display:block!important; }到CSS – Vegapunk

相关问题