jQuery Raty 源码改造,设置自己想要的值

2024-04-21 09:58

本文主要是介绍jQuery Raty 源码改造,设置自己想要的值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在有个要求:

    先从后台获取我们要显示多少颗星星,再为每个星星设置一个value属性,为这个星星在数据库中的id.


1.找到Raty 定义数据结构的地方,并且加入自己的变量:

  $.fn.raty.defaults = {cancel       : false,cancelClass  : 'raty-cancel',cancelHint   : 'Cancel this rating!',cancelOff    : 'cancel-off.png',cancelOn     : 'cancel-on.png',cancelPlace  : 'left',click        : undefined,half         : false,halfShow     : true,hints        : ['bad', 'poor', 'regular', 'good', 'gorgeous'],iconRange    : undefined,mouseout     : undefined,mouseover    : undefined,noRatedMsg   : 'Not rated yet!',number       : 5,numberMax    : 20,path         : undefined,precision    : false,readOnly     : false,round        : { down: 0.25, full: 0.6, up: 0.76 },score        : undefined,scoreName    : 'score',single       : false,space        : true,starHalf     : 'star-half.png',starOff      : 'star-off.png',starOn       : 'star-on.png',starType     : 'img',target       : undefined,targetFormat : '{score}',targetKeep   : false,targetScore  : undefined,targetText   : '',targetType   : 'hint',// custom 将后台的结果传递进来resultList   : undefined};
2.在创建星星的时候,为它加入value属性

    _createStars: function() {for (var i = 1; i <= this.opt.number; i++) {varname  = methods._nameForIndex.call(this, i),attrs = { alt: i, src: this.opt.path + this.opt[name]};// custom 增加一个value属性,方便传递参数if(this.opt.resultList != undefined) {attrs.value = this.opt.resultList[i - 1].id;}if (this.opt.starType !== 'img') {attrs = { 'data-alt': i, 'class': attrs.src }; // TODO: use $.data.}attrs.title = methods._getHint.call(this, i);$('<' + this.opt.starType + ' />', attrs).appendTo(this);if (this.opt.space) {this.self.append(i < this.opt.number ? ' ' : '');}}this.stars = this.self.children(this.opt.starType);},
3.在点击事件中用到这个变量:

Raty给了我们定义点击事件的方法,但是在那里获取到的是我们想要的对象的 父对象 很神奇!所以我决定在源码中传过来!

找到点击事件,并且将evt设置为我们想要的值(为什么?看注释):

    _bindClick: function() {var that = this;that.stars.on('click.raty', function(evt) {varexecute = true,score   = (that.opt.half || that.opt.precision) ? that.self.data('score') : (this.alt || $(this).data('alt'));// custom 将 evt设为对应的id设为分数传递(事件名不太重要),因为我们需要的是表的ID,而我的ID是UUID,score会被数学函数处理,所以不能传,如果ID是数字则可以
evt = this.getAttribute("value");if (that.opt.click) {execute = that.opt.click.call(that, +score, evt);}if (execute || execute === undefined) {if (that.opt.half && !that.opt.precision) {score = methods._roundHalfScore.call(that, score);}methods._apply.call(that, score);}});},

此时在处理点击事件就没问题了、

$("#star").raty({path : basePath,number : length,resultList : data.result.list,click : function (score, scoreId) { // scoreId 原本是evt 也就是我们想要的ID了~~~~}});

最后记得压缩JS!!

这篇关于jQuery Raty 源码改造,设置自己想要的值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/922791

相关文章

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

如何Python使用设置word的页边距

《如何Python使用设置word的页边距》在编写或处理Word文档的过程中,页边距是一个不可忽视的排版要素,本文将介绍如何使用Python设置Word文档中各个节的页边距,需要的可以参考下... 目录操作步骤代码示例页边距单位说明应用场景与高级用China编程途小结在编写或处理Word文档的过程中,页边距是一个

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

CSS 样式表的四种应用方式及css注释的应用小结

《CSS样式表的四种应用方式及css注释的应用小结》:本文主要介绍了CSS样式表的四种应用方式及css注释的应用小结,本文通过实例代码给大家介绍的非常详细,详细内容请阅读本文,希望能对你有所帮助... 一、外部 css(推荐方式)定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Vue中插槽slot的使用示例详解

《Vue中插槽slot的使用示例详解》:本文主要介绍Vue中插槽slot的使用示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、插槽是什么二、插槽分类2.1 匿名插槽2.2 具名插槽2.3 作用域插槽三、插槽的基本使用3.1 匿名插槽

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践举例

《Vue2项目中配置TailwindCSS和FontAwesome的最佳实践举例》:本文主要介绍Vue2项目中配置TailwindCSS和FontAwesome的最... 目录vue 2 项目中配置 Tailwind css 和 Font Awesome 的最佳实践一、Tailwind CSS 配置1. 安