javascript - 将一个标签的鼠标移入移出事件改用函数调用的方式写失败了,请热心的朋友帮我看看,非常感谢
天蓬老师
天蓬老师 2017-04-10 17:04:12
[JavaScript讨论组]

失败的代码在注释中

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>淘宝卖家中心</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        li {
            list-style: none;
        }
        a {
            text-decoration: none;
            color: #000;
        }
        .nav-option {
            width: 110px;
            height: 30px;
            line-height: 30px;
            overflow: hidden;
            margin: 50px auto;
        }
        .nav-option .sell-center:hover{
            color: orange;
        }
        .nav-option ul li {
            line-height: 28px;
        }
        .show {
            overflow: visible;
        }
        .bgcGray {
            background-color: #F5F5F5;
        }
        .bgcWhite {
            background-color: #fff;
        }
    </style>
    <script>
        window.onload = function () {
            var navOption = document.getElementById("nav-option");
            var arrLi = navOption.getElementsByTagName("li");
            var len = arrLi.length;

            navOption.onmouseover = function () {
                navOption.className += " show";
            }
            navOption.onmouseout = function () {
                navOption.className = "nav-option";
            }

//            想将上面两段代码,navOption的鼠标移入、移出事件改用函数调用的方式写
//             但实现不了,请问哪里错了?
//            fnTab(navOption,onmouseover,"nav-option show");
//            fnTab(navOption,onmouseout,"nav-option");
//            function fnTab(name,evt,cclassName){
//                name[evt] = function (){
//                    name.className = cclassName;
//                }
//            }

            for(var i=0;i<len;i++){
                arrLi[i].onmouseover = function () {
                    this.className = "bgcGray";
                }
                arrLi[i].onmouseout = function () {
                    this.className = "bgcWhite";
                }
            }
        }
    </script>
</head>
<body>
    <ul>
        <li class="nav-option" id="nav-option">
            <a href="#" class="sell-center">卖家中心</a>
            <ul>
                <li><a href="#">免费开店</a></li>
                <li><a href="#">已卖出的宝贝</a></li>
                <li><a href="#">出售中的宝贝</a></li>
                <li><a href="#">卖家服务市场</a></li>
                <li><a href="#">卖家培训中心</a></li>
            </ul>
        </li>
    </ul>
</body>
</html>
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
巴扎黑

用[]取值,虽然可以代替.的方式,但键名必须是个字符串,所以调用改成:

fnTab(navOption,"onmouseover","nav-option show")
fnTab(navOption,"onmouseout","nav-option")

加引号

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号