javascript - 刚学JS,求问下大神下面代码有些什么问题
PHPz
PHPz 2017-04-10 17:24:27
[JavaScript讨论组]

下面是个简单的日历,为什么onmouseover一个li就会隐藏啊。。。实在不懂,TAT

<script>

window.onload=function(){
    var op=document.getElementById("tab");
    var aLi=document.getElementsByTagName("li");
    var oTxt=document.getElementsByTagName("p")[0];
    
    for (var i=0;i<aLi.length;i++)
    {
        aLi[i].index=i;
        aLi[i].onmouseover=function()
        {
            for(i=0;i<aLi.length;i++)
            {
                aLi[i].className="";
            }
            this.className="active";
            
            oTxt.innerHTML='<h2>'+(this.index+1)+'月活动</h><p>啦啦啦啦啦啦</p>';
        };
    }
    
     
};

</script>

PHPz
PHPz

学习是最好的投资!

全部回复(4)
迷茫
window.onload=function(){
    var op = document.getElementById("tab");
    var aLi = document.getElementsByTagName("li");
    var oTxt = document.getElementsByTagName("p")[0];
    
    for (var i=0;i<aLi.length;i++){
        aLi[i].index=i;
        aLi[i].onmouseover=function(){
            this.className="active";
            oTxt.innerHTML='<h2>'+(this.index+1)+'月活动</h><p>啦啦啦啦啦啦</p>';
        };
    }
};
伊谢尔伦

跟楼上答案一样.因为:`for(i=0;i<aLi.length;i++)

        {
            aLi[i].className="";
        }`把className都设置为空了
ringa_lee

没有html和css不好看出问题所在

PHP中文网

这样写的代码也是很不够优雅啊,在每一个li元素上都绑定一个事件处理得多耗内存,完全可以考虑使用事件代理

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

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