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

相关文章

idea设置快捷键风格方式

《idea设置快捷键风格方式》在IntelliJIDEA中设置快捷键风格,打开IDEA,进入设置页面,选择Keymap,从Keymaps下拉列表中选择或复制想要的快捷键风格,点击Apply和OK即可使... 目录idea设www.chinasem.cn置快捷键风格按照以下步骤进行总结idea设置快捷键pyth

MyBatis配置文件中最常用的设置

《MyBatis配置文件中最常用的设置》文章主要介绍了MyBatis配置的优化方法,包括引用外部的properties配置文件、配置外置以实现环境解耦、配置文件中最常用的6个核心设置以及三种常用的Ma... 目录MyBATis配置优化mybatis的配置中引用外部的propertis配置文件⚠️ 注意事项X

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

C#借助Spire.XLS for .NET实现Excel工作表自动化样式设置

《C#借助Spire.XLSfor.NET实现Excel工作表自动化样式设置》作为C#开发者,我们经常需要处理Excel文件,本文将深入探讨如何利用C#代码,借助强大的Spire.XLSfor.N... 目录为什么需要自动化工作表样式使用 Spire.XLS for .NET 实现工作表整体样式设置样式配置

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码