`
sdcyst
  • 浏览: 59028 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

一个简单的投票插件(jQuery rater plugin)

阅读更多

这个插件是以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库.希望有人知道
原因告诉我一下.

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
分享到:
评论
2 楼 zhrln 2009-07-24  
防止页面跳转,方便ajax应用 
这个会导致当滚动条不在top时页面跳转到top

href="javascript:;"

就不会跳了
1 楼 suxiaofei 2009-02-26  
不错,注释很详细,代码结构划分也很好!

相关推荐

    jQuery Rater Star Plugin

    jQuery Rater Star Plugin是一款基于jQuery的插件,专为实现这种星星评价功能而设计。通过简单的API调用和自定义设置,开发者可以轻松地将五星级评分系统集成到自己的网页中。 一、jQuery Rater Star Plugin基础 1...

    jQuery Rater评分插件

    jQuery Rater插件是基于流行的JavaScript库jQuery构建的,它的主要目标是提供一个直观、美观的星级评分界面。这款插件不仅支持静态显示,还支持动态交互,即用户可以实时更改评分,并且开发者可以通过API获取用户的...

    240多个jQuery UI插件

    - **Select Combo Plugin**: 结合多个`&lt;select&gt;`元素为一个组合。 - **jQuery-Linked Select**: 实现两个或多个`&lt;select&gt;`元素的关联。 - **Auto-populate multiple select boxes**: 自动填充多选框中的选项。 -...

    240多个jQuery插件.doc

    - **Select Combo Plugin**: 组合多个选择项为一个。 - **jQuery-Linked Select**: 链接多个选择框,实现联动。 - **Auto-populate multiple select boxes**: 自动填充多选框。 #### 4. 表单基本、输入框、选择框等...

    240多个jQuery插件

    jQuery 是一个广泛使用的JavaScript库,它的核心理念是“写更少的代码,做更多的事情”。这个库因其轻量级和高效性而受到开发者们的青睐,压缩后的大小仅21k,支持包括Internet Explorer 6.0+、Firefox 1.5+、Safari...

    jquery评分插件集合.7z

    包括 jQuery Rater Star Plugin.7z jquery.raty-0.5.zip jquery.raty-1.4.3.zip jquery-rater.zip jquery星级评级插件.rar jRating.rar rater-star.zip rotating-jquery-tabs1.zip star-rating.zip

    简单jQuery星级评分功能插件

    3. 功能插件:说明这是一个专为特定功能设计的jQuery扩展,方便开发者快速添加到项目中。 【压缩包文件】包含以下组件: 1. rater.css:这是插件的样式表,定义了星级评分的样式,包括未选中和选中状态的星星图标、...

    jquery插件表

    这个库的出现使得开发者可以用更少的代码完成更多的功能,尤其在处理浏览器兼容性问题时,jQuery 提供了一个统一的接口。此外,jQuery 的文档详尽,拥有丰富的插件库,可以极大地提升开发效率。 ### 文件上传 - **...

    海量经典的jQuery插件集合

    - **功能概述**:提供另一个颜色选择器选项。 - **应用场景**:适用于需要不同风格的颜色选择器。 #### 六、投票插件(Rating Plugins) **1. jQuery Star Rating Plugin** - **功能概述**:实现星级评分功能。 - ...

    JQuerry 插件介绍

    6. 投票插件: - jQuery Star Rating Plugin:星级评分系统。 - jQuery Star Rater:自定义星级评分插件。 - Content rater with asp.net, ajax and jQuery:用于内容评价的插件。 - Half-Star Rating Plugin:...

    强烈推荐240多个jQuery插件提供下载

    jQuery,作为一个广泛使用的JavaScript库,以其高效、简洁的特性赢得了开发者们的青睐。它的核心理念是“写更少的代码,做更多的事情”,这体现在它强大的DOM操作、事件处理、动画制作以及Ajax交互等方面。它的轻量...

    ETS的e-rater揭秘

    ETS的e-rater技术是GRE写作评估中的一个重要组成部分,它是一种自动评分系统,主要用于分析考生的写作样本。这个系统利用先进的自然语言处理(NLP)和机器学习算法,对GRE考试中的Issue和Argument作文进行评分。e-...

    jQuery星级评分功能插件(兼容IE6,IE7, IE8, Firefox, Opera, Chrome, Safari)

    只好自己修改了一下一个简单的评分功能插件,终于兼容IE6,IE7, IE8, Firefox, Opera, Chrome, Safari。效果参考: 用法:参考下载后的index.html 依赖: jQuery.js jQuery.rater.js rater.css star.gif star_...

    js星星评分C#

    - **jQuery**:这是一个快速、简洁的JavaScript库,用于简化JavaScript的DOM操作、事件处理和Ajax交互。在这个项目中,`jquery-1.3.2-vsdoc.js`是jQuery库的版本,用于前端脚本支持。 - **jQuery Rater插件**:`...

    动态星星评价(jquery)

    在本案例中,我们关注的是一个基于jQuery实现的动态星星评价系统,它具有实用性且代码易于修改。 首先,jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画效果以及Ajax交互等任务。在动态...

    jquery 弹出层注册页面等(asp.net后台)

    3. **民意调查(异步提交)**:为了实现投票功能,可以使用jQuery的rater插件。引入`jquery.rater.js`和`rater.css`,然后调用`$(‘#demo2’).rater(‘Handler1.ashx’)`, 其中的`Handler1.ashx`是ASP.NET的HTTP处理...

    react-rater::white_medium_star:互动式和可定制的星级

    React评价者星评 安装npm install react-raterimport Rater from 'react-rater'import 'react-rater/lib/react-rater.css'// ...render ( ) { return ( &lt; Rater xss=removed xss=removed&gt; )}API &lt; Rater xss=removed...

    Movie-Rater--源码.rar

    《Movie-Rater--源码》是一个关于电影评分系统的软件源代码包。这个系统可能是用于帮助用户根据个人口味和偏好对电影进行评分,并提供推荐功能。从文件名来看,我们可以推测这个项目可能涉及到以下IT领域的关键知识...

Global site tag (gtag.js) - Google Analytics