php - Javascript + 动态菜单 + 当前链接样式 (CSS) + 基于 PHP 的站点

标签 php javascript html css dynamic

这是我的设置:

我有一个使用动态包含的模块化网站。主页需要标题。主页只负责从站点上的特定链接呈现内容。因此,到 CSS 和 js 文件的外部链接位于主页的头部,内容页面是 (php) 文档片段,旨在作为内容包含在主页中。

在客户端,我希望我的菜单能够使用 Javascript 动态运行。我已经使用 CSS 来设置 :hover:active:visited 伪类的样式。我定义了两个与事件按钮和非事件按钮相关的单独类。我写了 js,为链接设置了 onclick 事件,并外部链接了脚本。

问题

Firebug 正在检测脚本,但是当我单击链接时,该函数没有触发。

代码

带有内联函数调用的 HTML 菜单元素:

 <ul>
        <li class="navLnk"><a href="mylinks.php" tabindex="2" accesskey="2" onclick"asgnActv(this)">BANDS</a></li>
        <li class="navLnk"><a href="mylinks.php" tabindex="3" accesskey="3" onclick"asgnActv(this)">RELEASES</a></li>
 </ul>

Javascript 函数:

function asgnActv(e){
if (e.className == 'navLnk') {
    $lnkArr = document.getElementsByClassName('actvLnk');
    for (i=0; i<$linkArr.length; i++) {
        $linkArr[i].className = 'navLnk';
    }
    e.className = 'actvLnk';
  }
}

主 php 页面头部的外部 js 链接:

<script type="text/javascript" src="script.js"></script>

最佳答案

我猜有两个错误,一个是@Joseph 提到的缺少“=”符号,另一个是在您检查其类名的js 代码中,而此类“navLnk”被定义到其父元素,即< li >

所以要开始工作,要么指定 anchor 元素的类,要么使用下面的脚本,如果你想要它用于 li 元素

function asgnActv(e){
   if (e.parentNode.className == 'navLnk') {
     $lnkArr = document.getElementsByClassName('actvLnk');
     for (i=0; i<$linkArr.length; i++) {
       $linkArr[i].className = 'navLnk';
     }
     e.parentNode.className = 'actvLnk';
   }
}

希望这会有所帮助。

关于php - Javascript + 动态菜单 + 当前链接样式 (CSS) + 基于 PHP 的站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12269293/

相关文章:

php Memcache 类找不到

javascript - Rails 使用 'read more' 切换 chop

javascript - XPCOM stub 文件

javascript - 分页.js : How can I set up an additional page counter for only a few pages

javascript - 在标记中嵌入脚本所需数据的方法

html - 为什么我导入外部字体的 STYLE 不起作用

php - 如何用不同的ip捕获同一个用户

php - 企业版中的 Magento 重建索引问题

javascript - ng-submit angular js不能在php中工作

javascript - 操纵 require 或 import 结果的方法