Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript+;动态菜单+;当前链接样式(CSS)和#x2B;基于PHP的网站_Php_Javascript_Html_Css_Dynamic - Fatal编程技术网

Javascript+;动态菜单+;当前链接样式(CSS)和#x2B;基于PHP的网站

Javascript+;动态菜单+;当前链接样式(CSS)和#x2B;基于PHP的网站,php,javascript,html,css,dynamic,Php,Javascript,Html,Css,Dynamic,这是我的设置: 我有一个模块化的网站,使用动态包含。标题是主页所必需的。主页只负责呈现网站上特定链接的内容。因此,指向CSS和js文件的外部链接位于主页的头部,内容页是(php)文档片段,设计为包含在主页中的内容 在客户端,我希望我的菜单能够使用Javascript动态运行。我已经使用CSS设计了:hover、:active和:visted伪类的样式。我定义了两个独立的类,分别与活动按钮和非活动按钮相关。我编写了js,为链接设置onclick事件,并从外部链接了脚本 问题 Firebug正在检测

这是我的设置:

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

在客户端,我希望我的菜单能够使用Javascript动态运行。我已经使用CSS设计了
:hover
:active
:visted
伪类的样式。我定义了两个独立的类,分别与活动按钮和非活动按钮相关。我编写了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';
  }
}
函数asgnActv(e){
如果(e.className=='navLnk'){
$lnkArr=document.getElementsByClassName('actvLnk');

对于(i=0;i我猜有两个错误,@Joseph提到的一个“=”符号缺失,而且在js代码中,您正在检查它的类名,而这个类“navLnk”被定义为它的父元素,即
  • 因此,要完成这项工作,请指定要锚定元素的类,或者如果希望将其用于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';
       }
    }
    
    函数asgnActv(e){
    如果(e.parentNode.className=='navLnk'){
    $lnkArr=document.getElementsByClassName('actvLnk');
    
    对于(i=0;i您缺少一个
    =
    符号:
    onclick=
    不要使用侵入性
    onclick
    属性元素,请在脚本中完成所有操作[jQuery将为此节省大量时间]。如果这就是我错过的一切!…哦,sheesh…@moonwave99你能给我举个例子吗?啊,首先-如果你点击一个链接,你将进入
    mylinks.php
    ,页面将被重新加载,所以你的脚本将没有用处。如果你想让当前部分有一个不同的类,那么就在服务器端做吧。这很完美。我唯一需要做的另一件事是如果他们都不活跃,我就不用担心了。我也得检查一下!谢谢!我很高兴事情这么简单。
    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';
       }
    }