仿淘宝实现多行星级评价

仿淘宝实现多行星级评价

最近再做一个评价功能,当时首先想到的是淘宝的评价功能,感觉那个不错,由于是初学者所以还不是很会,于是在网上百度了一下,我发现网上的都是只有一行星级评价功能,所以我在他

<script type="text/javascript" >
    var Class = {
    create: function() {
        return function() { this.initialize.apply(this, arguments); }
    }
}
var Extend = function(destination, source) {
    for (var property in source) {
        destination[property] = source[property];
    }
}
function stopDefault( e ) {
     if ( e && e.preventDefault ){
        e.preventDefault();
    }else{
        window.event.returnValue = false;
    }
    return false;
} 

var Stars = Class.create();
Stars.prototype = {
    initialize: function(star,options) {
        this.SetOptions(options); //默认属性
        var flag = 999; //定义全局指针
        var isIE = (document.all) ? true : false; //IE?
        var starlist = document.getElementById(star).getElementsByTagName('a'); //星星列表
        var input = document.getElementById(this.options.Input) || document.getElementById(star+"-input"); // 输出结果
        var tips = document.getElementById(this.options.Tips) || document.getElementById(star+"-tips"); // 打印提示
        var nowClass = " " + this.options.nowClass; // 定义选中星星样式名
        var tipsTxt = this.options.tipsTxt; // 定义提示文案
        var len = starlist.length; //星星数量
        

        for(i=0;i<len;i++){ // 绑定事件 点击 鼠标滑过
            starlist[i].value = i;
            starlist[i].onclick = function(e){
                stopDefault(e);
                this.className = this.className + nowClass;
                flag = this.value;
                input.value = this.getAttribute("star:value");
                tips.innerHTML = tipsTxt[this.value]
            }
            starlist[i].onmouseover = function(){
                if (flag< 999){
                    var reg = RegExp(nowClass,"g");
                    starlist[flag].className = starlist[flag].className.replace(reg,"")
                }
            }
            starlist[i].onmouseout = function(){
                if (flag< 999){
                    starlist[flag].className = starlist[flag].className + nowClass;
                }
            }
        };
        if (isIE){ //FIX IE下样式错误
            var li = document.getElementById(star).getElementsByTagName('li');
            for (var i = 0, len = li.length; i < len; i++) {
                var c = li[i];
                if (c) {
                    c.className = c.getElementsByTagName('a')[0].className;
                }
            }
        }
    },
    //设置默认属性
    SetOptions: function(options) {
        this.options = {
   //默认值
            Input:          "",//设置触保存分数的INPUT
            Tips:           "",//设置提示文案容器
            nowClass:   "current-rating",//选中的样式名
            tipsTxt:        ["1分-严重不合格","2分-不合格","3分-合格","4分-优秀","5分-完美"]//提示文案
        };
        Extend(this.options, options || {});
    }
}
var Stars1 = new Stars("stars1")
var Stars2 = new Stars("stars2")
var Stars3 = new Stars("stars3")
var Stars4 = new Stars("stars4")

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113654.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android开发:bindService的使用方法

    Android开发:bindService的使用方法http://blog.csdn.net/zhou_wenchong/article/details/51302574bindService用于绑定一个服务。这样当bindService(intent,conn,flags)后,就会绑定一个服务。这样做可以获得这个服务对象本身,而用startService(intent)的方法只能启动服务。   bindService方式的一般过程:

    2022年6月8日
    39
  • nodejs安装淘宝镜像(淘宝 nodejs)

    设置淘x,宝的是:npmconfigsetregistryhttps://registry.npm.taobao.org不想用他们的,再设置回原来的就可以了:npmconfigsetregistryhttps://registry.npmjs.org

    2022年4月17日
    41
  • GB50174-2008电子信息系统机房设计规范_根据电子信息系统机房设计规范

    GB50174-2008电子信息系统机房设计规范_根据电子信息系统机房设计规范GB50174-2008《电子信息系统机房设计规范》 转载于:https://blog.51cto.com/56421/475664

    2022年9月27日
    2
  • 泰国80亿互联网记录数据库泄漏,疑遭黑客攻击[通俗易懂]

    泰国80亿互联网记录数据库泄漏,疑遭黑客攻击[通俗易懂]泰国最大的蜂窝网络AIS已使数据库脱机,疑遭黑客攻击,这使达80亿实时互联网记录泄漏到数百万泰国互联网用户上,该事件震惊整个泰国。全球著名白帽黑客、东方联盟创始人郭盛华博客文章中说,他在互联网上没有密码就找到了包含DNS查询和Netflow数据的数据库。通过访问该数据库,任何人都可以“快速描绘”互联网用户(或其家庭)的实时行为。他表示:“在数据库中找到的记录只能来自能够监视Internet流量在网络上流动的人。但是,没有一种简单的方法可以区分数据库是属于Internet提供商还…

    2022年9月15日
    3
  • C# DateTimePicker:日期时间控件「建议收藏」

    C# DateTimePicker:日期时间控件「建议收藏」日期时间控件(DateTimePicker)在时间控件中的应用最多,主要用于在界面上显示当前的时间。Format属性提供了4个属性值,如下所示。Short:短日期格式,例如2017/3/1;Long:长日期格式,例如2017年3月1日;…

    2022年5月24日
    579
  • 利用chardet检测网页编码

    环境:Win7_x64+python3.4.3需要先下载chardet并进行安装,下载地址:https://pypi.python.org/packages/source/c/chardet/c

    2021年12月25日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号