javascript - 关于星级评分部分问题原理不懂。
大家讲道理
大家讲道理 2017-04-10 16:06:59
[JavaScript讨论组]

想了一下午就是搞不懂onmouseout跟onclick是怎么关联到的?
自己只做出移入移出效果。。
下面代码是参考别人后添加进自己代码的。
为什么加个变量NUM?onmouseout跟onclick是怎么关联到的?

window.onload = function(){
            var ospan = document.getElementsByTagName('span')[0];
            var aimg = document.getElementsByTagName('img');
            var arrText = ['很差','较差','还行','推荐','力荐']
            var num = -1;
            for(var i=0;i<aimg.length;i++){
                aimg[i].index = i;
                aimg[i].onmouseover = function(){
                    for(var i=0;i<aimg.length;i++){
                            aimg[i].src = 'star_onmouseout.png'                              
                    }; 
                    for(var i=0;i<aimg.length;i++){
                        if(i<=this.index){
                            aimg[i].src = 'star_onmouseover.png'
                            ospan.innerHTML = arrText[this.index]
                        };
                    };                  
                }; 
                aimg[i].onmouseout = function(){
                     for(var i=0;i<aimg.length;i++){
                            aimg[i].src = 'star_onmouseout.png'  
                            ospan.innerHTML = '' 
                    };  
                    for(var j=0;j<=num;j++){
                        aimg[j].src = 'star_onmouseover.png'
                    }
                };
                aimg[i].onclick = function(){
                    num = this.index  //为什么这里能关联到?
                };
            };
        };
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
天蓬老师

他这个代码总体思路是这样的:

  1. 鼠标移上图片的时候,根据鼠标指向的是第几个图片,用代码把位于鼠标之前的图片设置为高亮(onmouseover事件)

  2. 鼠标移出图片的时候,根据用户最后一次所选的评分把图片设置为高亮(onmouseout事件)。这个评分标准就是num的值

  3. 鼠标点击图片的时候,根据点击的是哪个星级的图片,把num设置为相应的星级(onclick事件)

所以,点击后,num的值就会改变,当用户下次把鼠标移出图片,发生onmouseout事件的时候,这个评分已经变了,所以显示的分数也会变成用户最后一次选择的那个分数。

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

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