仿淘宝实现多行星级评价

仿淘宝实现多行星级评价

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

<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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql 同步远程数据库_两个sql数据库数据实时同步

    mysql 同步远程数据库_两个sql数据库数据实时同步1.服务配置说明:服务器名称服务器地址数据库名称用户名密码端口数据库服务器A121.xx.xx.xxyoujihui_zsrootyoujihui3306数据库服务器B120.yy.yy.yyy

    2022年10月15日
    0
  • 面向对象程序设计的基本原理_面向对象程序设计c++答案

    面向对象程序设计的基本原理_面向对象程序设计c++答案Java程序设计(面向对象)- 设计原理

    2022年4月22日
    38
  • 缺陷和缺陷报告_质量缺陷报告

    缺陷和缺陷报告_质量缺陷报告一、缺陷的基本概述1、缺陷的定义(重要):①软件未实现产品说明书要求的功能②软件出现了产品说明书指明不该出现的功能③软件实现了产品说明书未提到的功能④软件未实现产品说明书虽未明确提及但应该实现的目标⑤软件难以理解、不易使用、运行缓慢或者(从测试角度看)最终用户会认为不好2、缺陷属性1、缺陷的类型:功能、用户界面、文档、软件包、性能、系统/模块接口注意:需求分析、设计阶段,文档类型缺陷多;集成测试阶段,一般接口类型的缺陷多一…

    2022年9月18日
    0
  • c#子窗口与父窗口_主窗体控制子窗体的显示

    c#子窗口与父窗口_主窗体控制子窗体的显示方法较为简单,直接撸代码父窗口代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Form…

    2022年8月18日
    3
  • python激活码2022 11【中文破解版】2022.01.25

    (python激活码2022 11)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1TCF2R91JZ-eyJsaWNlbnNlSWQi…

    2022年3月31日
    56
  • GitHub 标星 2.9w+,我发现了一个宝藏项目,作为编程新手有福了!「建议收藏」

    GitHub 标星 2.9w+,我发现了一个宝藏项目,作为编程新手有福了!「建议收藏」大家好,我是Rocky0429,一个最近老在GitHub上闲逛的蒟蒻…特别惭愧的是,虽然我很早就知道GitHub,但是学会逛GitHub的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞ACM,没有做一些工程类的项目,所以想当然的以为和GitHub也没什么关系(当然这种想法是错误的)。后来自己花了一个星期看完了Pyt…

    2022年6月17日
    28

发表回复

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

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