我不知道自己哪里出错了,但我试图让斜线只出现在菜单的第一个下拉级别。我在php中这样做。
这是我的代码
function appendMainNav($subid){
global $_PAGES_TABLE, $_HTTP_ADDRESS;
$subWrapper='';
$subClass='';
$mainClass='mega-nav-wrapper overlay-bg';
if($this->hasParentMenu($subid) > 0){
$subWrapper = 'sub-nav-main-wrapper';
$subClass='sub-nav-wrapper';
$mainClass='';
}
$p=1;
$str = "";
$str.= '<div class="'.$subWrapper.'">';
$str.=' <ul class="'.$mainClass.''.$subClass.'">';
$query = mysql_query("SELECT * FROM $_PAGES_TABLE P WHERE P.parent='".$subid."' AND P.show='1' AND P.active='1' ORDER BY num");
while( $result = mysql_fetch_object($query) ){
$page = new Page($result->id);
$page->setFromDatabase();
$lastClass='';
if(($page->linkto != '0' && $page->linkto != 0 && $page->linkto != '') || $page->linkto == '#'){
$linkto = $page->linkto;
}else{
$linkto = $page->id;
}
$appendArrow='';
$arrowSelect = "";
$slash =' ';
if($this->hasChildrenMenu($page->id) > 0){
$slash = ' /';
}
$str .='<li class="subnav_item'.$lastClass.'"><a class="'.$appendArrow.'" href="'.getSEOLink($linkto).'">'.$page->{'title'.$langVar}.''.$slash.'</a>';
//$str.='<li><span>/</span></li>';
if($this->hasChildrenMenu($page->id) > 0){
$str.= $this->appendMainNav($page->id);
}
$str.='</li>';
$p++;
}
$str.=' </ul>';
$str.='</div>';
return $str;
目前它只出现在子菜单项上,也有下拉下拉菜单。第二次下降不能有任何东西。
我的菜单看起来像这样
menu 1 menu 2 / menu 3
submenu 1
submenu 2
submenu 3
这就是我希望它看起来的方式
menu 1 / menu 2 / menu 3 /
submenu 1
submenu 2
submenu 3
答案 0 :(得分:0)
一个简单的解决方案是在函数中添加一个标志并更改条件:
function appendMainNav($subid, $noSlash = false){
...
if(!$noSlash){
$slash = ' /';
}
...
if($this->hasChildrenMenu($page->id) > 0){
$str.= $this->appendMainNav($page->id, true);
}
...