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

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二