帝国cms利用JS使当前栏目无限级高亮控制
来源:程序员人生 发布时间:2014-01-19 06:36:35 阅读次数:3066次
首先我们要用到灵动标签从数据库取出对应的栏目名称:
一、若要取出所有的最顶级的栏目名称选择:bclassid=0,其中 id="cid<?=$bqr[classid]?> 就是要拿到当前页面的ID值
[e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder',0,24,0}]
<li id="cid<?=$bqr[classid]?>" <?=currentPage($GLOBALS[navclassid],$bqr[classid])?>>
<a href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>" target="_self" ><?=$bqr[classname]?></a>
</li>
[/e:loop]
二、若要取出固定的栏目:可以将bclassid=59,这个值就是你的父栏目的ID值,其中 id="cid<?=$bqr[classid]?> 就是要拿到当前页面的动态ID值,生成的字符是cid28,cid29,cid30等等。
[e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=59 and showclass=0 order by myorder',0,24,0}]
<li> <a id="cid<?=$bqr[classid]?>" href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>" target="_self" >
<?=$bqr[classname]?>
</a> </li>
[/e:loop]
把js在其下面加载,JS代码如下,其中cur2 就是你的定住并要显示高亮的样式,不过多赘述。
<script type="text/javascript">
var myid = document.getElementById('cid[!--self.classid--]');
myid.className = 'cur2';
</script>
变量说明:
[!--self.classid--] 代表当前的栏目ID数值
<?=$bqr[classid]?> 代表栏目ID
其他方法参考:
首先要在userfun.php文件中加如下代码:
function currentPage($classid,$thisid){
global $class_r;
$fr=explode('|',$class_r[$classid][featherclass]);
$topbclassid=$fr[1]?$fr[1]:$classid;//取得第一级栏目id
if ($topbclassid==$thisid) {
echo "class='menuon'";
}
else {
}
}
function OnePage($classid,$thisid){
global $class_r;
$fr=explode('|',$class_r[$bclassid][featherclass]);
$topbclassid=$fr[1]?$fr[1]:$classid;//取得子栏目id
if ($topbclassid==$thisid) {
echo "bmenuon";
}
else {
}
}
<ul>
<li class="menuon"><a href="/" target="_self">首页</a></li>
[e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder',0,24,0}]
<li id="cid<?=$bqr[classid]?>" <?=currentPage($GLOBALS[navclassid],$bqr[classid])?>>
<a href="<?=$public_r[newsurl]?><?=$bqr[classpath]?>" target="_self" ><?=$bqr[classname]?></a>
</li>
[/e:loop]
</ul>