这个问题折腾了两天,不过最后仍是搞定了。好比:你们经常使用的TB Mega Menu,但有子菜单的连接必须定义!但是有时候是不须要,怎么办?php
内容来自: http://blog.mreald.com css
怎么改?html
很简单:把 a标签内容改成:href="#" onclick="return false"数据库
在哪儿改?数组
第一次尝试:感受直接改数据库,找到Menu表,把连接字段给改了,或者删除,但结果是,要么不显示,要么生成新的连接。----失败!网站
第二次尝试:改主题。既然全部的结果输出都通过主题,那么在主题拦截,作出更改,确定能够!结果:不能够,不论你怎么改,都仍是原来的连接 -------失败!url
第三次尝试:能够根据 css 的class 定位用JS修改,但只能改href的值,不能增长onclick....(可能js玩的不熟)code
第四次尝试:内容的输出可能不是网站主题,而是TB mega menu 模块的主题输出。 找数组输出的地方,改内容,一个晚上尝试,没结果 ----失败!htm
第五次尝试:定位在模块!读TB Mega menu的源代码,看其逻辑关系--->内容输出--->包装。最后终于发现:在一个tpl.php里面作内容的包装。结果:改html与php结合的代码,为php代码,就OK!blog
更多好处:
若是在导航栏增长外网的连接,就能够增长 _blank 属性,在新网页打开了!
原代码:
<a href="<?php print in_array($item['link']['href'], array('<nolink>')) ? "#" : url($item['link']['href']);?>" class="<?php print implode(" ", $a_classes);?>">
改成:
<?php if($submenu && $block_config['auto-arrow']) { echo '<a href="#" onclick="return false" class="dropdown-toggle">'; }else{ $href=in_array($item['link']['href'], array('<nolink>')) ? "#" : url($item['link']['href']); $addclass=implode(" ", $a_classes); if($href == "http://blog.mreald.com/index.php") { echo '<a href="'.$href.'" class="'.$addclass.'" target="_blank">'; }else{ echo '<a href="'.$href.'" class="'.$addclass.'">'; } } ?>