这个插件是以Kjell Bublitz<m3nt0r.de@gmail.com>所写的jquery-rater插件为基础进行修改得到的,
核心js并没有修改,只是在原来的基础上去掉了ajax的交互功能,主要是为了更方便我们定制自己的功能.
css样式也没有变动.
原插件demo:http://www.m3nt0r.de/devel/raterDemo/
注意:这个插件用的jquery不知道是哪个版本的,反正我换了自己下的jquery.js库后运行的时候有些小问题,
在IE7下测试时,style='inline-normal'或style='inline-small'的效果并没有体现出来,星星还是另外起了
一行显示,但在firfox下测试又正常,具体原因还不清楚,所以我有了作者自己的jquery.js库.希望有人知道
原因告诉我一下.

Js代码
  1. jQuery.fn.rater = function(options)
  2. {
  3. var settings = {
  4. active    : true, //是否激活投票功能
  5. maxvalue  : 10,   //星星的个数
  6. curvalue  : 0,     //激活的星星个数
  7. style     : 'normal'  //默认样式(25px)
  8. };
  9. //如果options有数值,复制给settings
  10. if(options) { jQuery.extend(settings, options); };
  11. var container = jQuery(this);
  12. jQuery.extend(container, { averageRating: settings.curvalue });
  13. //默认样式(25px)
  14. if(!settings.style || settings.style == null || settings.style == 'normal') {
  15. var raterwidth = settings.maxvalue * 25;
  16. var ratingparent = '<ul class="star-rating" style="width:'+raterwidth+'px">';
  17. }
  18. //小星星(10px)
  19. if(settings.style == 'small') {
  20. var raterwidth = settings.maxvalue * 10;
  21. var ratingparent = '<ul class="star-rating small-star" style="width:'+raterwidth+'px">';
  22. }
  23. //将投票插件添加在同一行(25px)
  24. if(settings.style == 'inline-normal') {
  25. var raterwidth = settings.maxvalue * 25;
  26. var ratingparent = '<span class="inline-rating"><ul class="star-rating" style="width:'
  27. +raterwidth+'px">';
  28. }
  29. //将投票插件添加在同一行(10px)
  30. if(settings.style == 'inline-small') {
  31. var raterwidth = settings.maxvalue * 10;
  32. var ratingparent = '<span class="inline-rating"><ul class="star-rating small-star" style="width:'
  33. +raterwidth+'px">';
  34. }
  35. container.append(ratingparent);
  36. var starWidth, starIndex, listitems = '';
  37. var curvalueWidth = Math.floor(100 / settings.maxvalue * settings.curvalue);
  38. if(settings.active) { //允许投票
  39. for(var i = 0; i <= settings.maxvalue ; i++) {
  40. if (i == 0) { //创建激活的星星
  41. listitems+='<li class="current-rating" style="width:'+curvalueWidth+'%;" title="'
  42. +settings.curvalue+'/'+settings.maxvalue+'">'
  43. +settings.curvalue+'/'+settings.maxvalue+'</li>';
  44. else {
  45. starWidth = Math.floor(100 / settings.maxvalue * i);
  46. starIndex = (settings.maxvalue - i) + 2;
  47. //'#'的作用是为了防止页面跳转,方便ajax应用
  48. listitems+='<li class="star"><a href="#'+i+'" title="'+i+'/'+settings.maxvalue
  49. +'" style="width:'+starWidth+'%;z-index:'+starIndex+'">'+i+'</a></li>';
  50. }
  51. }
  52. else { //不允许投票
  53. listitems+='<li class="current-rating" style="width:'+curvalueWidth+'%;" title="'
  54. +settings.curvalue+'/'+settings.maxvalue+'">'
  55. +settings.curvalue+'/'+settings.maxvalue+'</li>';
  56. }
  57. container.find('.star-rating').append(listitems);
  58. //原来的js文件没有下面一行,我觉得应该加上.
  59. container.find('.star-rating').append('</ul>');
  60. //这一行的作用不清楚,如果不加的话会导致显示混乱
  61. container.append('<span class="star-rating-result"></span>');
  62. var stars = jQuery(container).find('.star-rating').children('.star');//获得所有的.star
  63. stars.click(function()
  64. {
  65. raterValue = jQuery(this).children('a')[0].href.split('#')[1];
  66. //在这里可以进行具体的操作,比如说调用ajax方法等.这里只是弹出了所选的按钮值,
  67. //然后不再允许投票
  68. container.find('.star-rating').remove();
  69. container.find('.inline-rating').remove();
  70. container.rater({active:false,maxvalue:settings.maxvalue,curvalue:raterValue,style:settings.style});
  71. alert(raterValue);
  72. return false;
  73. });
  74. };
jQuery.fn.rater = function(options)
{
var settings = {
active    : true, //是否激活投票功能
maxvalue  : 10,   //星星的个数
curvalue  : 0,     //激活的星星个数
style     : 'normal'  //默认样式(25px)
};
//如果options有数值,复制给settings
if(options) { jQuery.extend(settings, options); };
var container = jQuery(this);
jQuery.extend(container, { averageRating: settings.curvalue });
//默认样式(25px)
if(!settings.style || settings.style == null || settings.style == 'normal') {
var raterwidth = settings.maxvalue * 25;
var ratingparent = '<ul class="star-rating" style="width:'+raterwidth+'px">';
}
//小星星(10px)
if(settings.style == 'small') {
var raterwidth = settings.maxvalue * 10;
var ratingparent = '<ul class="star-rating small-star" style="width:'+raterwidth+'px">';
}
//将投票插件添加在同一行(25px)
if(settings.style == 'inline-normal') {
var raterwidth = settings.maxvalue * 25;
var ratingparent = '<span class="inline-rating"><ul class="star-rating" style="width:'
+raterwidth+'px">';
}
//将投票插件添加在同一行(10px)
if(settings.style == 'inline-small') {
var raterwidth = settings.maxvalue * 10;
var ratingparent = '<span class="inline-rating"><ul class="star-rating small-star" style="width:'
+raterwidth+'px">';
}
container.append(ratingparent);
var starWidth, starIndex, listitems = '';
var curvalueWidth = Math.floor(100 / settings.maxvalue * settings.curvalue);
if(settings.active) { //允许投票
for(var i = 0; i <= settings.maxvalue ; i++) {
if (i == 0) { //创建激活的星星
listitems+='<li class="current-rating" style="width:'+curvalueWidth+'%;" title="'
+settings.curvalue+'/'+settings.maxvalue+'">'
+settings.curvalue+'/'+settings.maxvalue+'</li>';
} else {
starWidth = Math.floor(100 / settings.maxvalue * i);
starIndex = (settings.maxvalue - i) + 2;
//'#'的作用是为了防止页面跳转,方便ajax应用
listitems+='<li class="star"><a href="#'+i+'" title="'+i+'/'+settings.maxvalue
+'" style="width:'+starWidth+'%;z-index:'+starIndex+'">'+i+'</a></li>';
}
}
} else { //不允许投票
listitems+='<li class="current-rating" style="width:'+curvalueWidth+'%;" title="'
+settings.curvalue+'/'+settings.maxvalue+'">'
+settings.curvalue+'/'+settings.maxvalue+'</li>';
}
container.find('.star-rating').append(listitems);
//原来的js文件没有下面一行,我觉得应该加上.
container.find('.star-rating').append('</ul>');
//这一行的作用不清楚,如果不加的话会导致显示混乱
container.append('<span class="star-rating-result"></span>');
var stars = jQuery(container).find('.star-rating').children('.star');//获得所有的.star
stars.click(function()
{
raterValue = jQuery(this).children('a')[0].href.split('#')[1];
//在这里可以进行具体的操作,比如说调用ajax方法等.这里只是弹出了所选的按钮值,
//然后不再允许投票
container.find('.star-rating').remove();
container.find('.inline-rating').remove();
container.rater({active:false,maxvalue:settings.maxvalue,curvalue:raterValue,style:settings.style});
alert(raterValue);
return false;
});
};
  • 大小: 16.9 KB
  • jquery_rater.rar (19.3 KB)
  • 下载次数: 12

一个简单的投票插件(jQuery rater plugin)相关推荐

  1. 流行的jQuery信息提示插件(jQuery Tooltip Plugin)

    流行的jQuery信息提示插件(jQuery Tooltip Plugin) Learning, by 木公. 信息提示虽然是小东西,但是在网站设计中却起到了巨大的作用.如果你网站的信息提示做的好,会 ...

  2. 流行的jQuery信息提示插件(jQuery Tooltip Plugin)【转】

    流行的jQuery信息提示插件(jQuery Tooltip Plugin) Learning , by 木公. 信息提示虽然是小东西,但是在网站设计中却起到了巨大的作用.如果你网站的信息提示做的好, ...

  3. 实现一个简单的投票功能

    实现一个简单的投票功能 最近项目中需要用到一个投票功能,当时觉得简单,向都没想就动手开始做,没想到走了不少弯路. 后来才发现,是想的太过简单了.来看看改进后的功能. 第一步:数据库设计 两个表:一个主 ...

  4. Android-实现一个简单的自动翻译插件

    目录 实现一个简单的自动翻译插件 实现思路 几个重要的实现方法 1.解析xml 2.写文件 3. 翻译 使用 实现一个简单的自动翻译插件 最近在开发项目是要将Android相关的资源进行国际化,需要将 ...

  5. 搜索引擎快捷导航:一个简单的chrome插件(教程)

    搜索引擎快捷导航 使用方法 :下载crx扩展名文件,拖入chrome应用管理界面即可 github地址:https://github.com/mouday/chrome-search-tool 编写一 ...

  6. php投票post,请教一个简单的投票页面,post怎么写

    以前写过一个简单的投票功能,作用是php post值 如果和数据库内容一致,则count+1 截图如下 现在希望把check.php由原来的单个框改成多个进行投票 网上查了下,要用到数组 我把代码改成 ...

  7. Android投票列表设计,AndroidCustomView一个简单的投票排名对比图

    简介(投票 ,排名对比图) 一个简单的自定义 View 可高度定制 支持设置替换 支持 ,和反对的图标 支持自定义线宽和支持反对线的字体颜色 设置比分值 效果图 字段 属性 OppositeBitma ...

  8. 编写一个简单的NodeBB插件

    要写 NodeBB 插件,棒极了!在这之前,你需要知道一些东西. 和 WordPress 类似,NodeBB 的插件搭建在 NodeBB 的钩子系统上.钩子系统,通过可控制的方式,把 NodeBB 的 ...

  9. php一个简单的投票系统_一个简单的PHP投票系统

    一个简单的PHP投票系统 分享到: 作者:转接卡 建立2个表,一个用来显示当前主题,一个存放历史结果. 当前主题表结构:选项(包括主题),票数 历史结果表结构:id,主题名,关点,投票开始时间,投票结 ...

最新文章

  1. 视觉传感器:3D感知算法
  2. maven(3)------maven构建web项目详细步骤
  3. 十个 Laravel 5 程序优化技巧
  4. python语句讲解_python语句讲解_python语句讲解
  5. 【计算机视觉】计算机视觉、模式识别、机器学习常用牛人主页链接
  6. 精通python工资高吗-软件测试,如何工资过万?
  7. HTML5 FormData实现文件上传实例
  8. C# 新特性 操作符单?与??和 ?. 的使用
  9. 系统架构设计师教程-学习-记录(29)系统开发基础知识-软件开发方法(5)软件系统工具
  10. 武汉科技大学计算机学院培养方案,武汉科技大学培养方案.DOC
  11. 使用html表单制作简单网页(加表单详细知识点)
  12. LTE FDD 时频资源
  13. css border:solid实线,dashed虚线;dotted点状,,double双线
  14. 一个故事搞懂Java并发编程
  15. U3D RPC网络传输相机画面
  16. 人工智能之知识图谱体系总结
  17. putty之pscp用法
  18. 添加项目到debug调试
  19. java web QQ(三)
  20. cvra机器人_PROCVRA一SE是什么意思?

热门文章

  1. elasticsearch分词器Jcseg安装手册
  2. C练题笔记之:Leetcode-804. 唯一摩尔斯密码词
  3. python文件open方式:r、r+、w、w+、a、a+
  4. fopen中mode参数 r, w, a, r+, w+, a+ 具体区别(转)
  5. 计算机鼠标一般分为,电脑鼠标有哪几种分类,每种分类是怎么样的?
  6. 大灰狼说:PURO编程之狼来了开张
  7. matlab绘制一组椭圆,在MATLAB中绘制椭圆和椭圆体
  8. matlab信号的能量谱代码,信号的频谱 频谱密度 功率谱密度 能量谱密度
  9. 对视觉显著性检测(Saliency Object Detection)中Channel Attention的一些总结
  10. 凌华服务器维护手册,鸿鹄专业电脑 成功修复台湾凌华ADLINK工控设备。