请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 7313|回复: 25

发个选星星打分功能函数 [复制链接]

cly84920 楼主

当当当

中级会员

帖子
209
体力
286
威望
4
发表于 2008-5-5 10:44:16 |显示全部楼层
看了下传统的方法,觉得不好,太麻烦。自己重写了个,思路比较新。
//====================选星星打分功能=================
function rate(obj,oEvent){
//==================
// 图片地址设置
//==================
var imgSrc = 'http://image1.koubei.com/images/store/icon_star_1.gif';
var imgSrc_2 = 'http://image1.koubei.com/images/store/icon_star_2.gif';
//---------------------------------------------------------------------------


if(obj.rateFlag) return;
var e = oEvent || window.event;
var target = e.target || e.srcElement;
var imgArray = obj.getElementsByTagName("img");
for(var i=0;i<imgArray.length;i++){
   imgArray._num = i;
   imgArray.onclick=function(){
    if(obj.rateFlag) return;
    obj.rateFlag=true;
    alert(this._num+1);
   };
}
if(target.tagName=="IMG"){
   for(var j=0;j<imgArray.length;j++){
    if(j<=target._num){
     imgArray[j].src=imgSrc_2;
    } else {
     imgArray[j].src=imgSrc;
    }
   }
} else {
   for(var k=0;k<imgArray.length;k++){
    imgArray[k].src=imgSrc;
   }
}
}

函数有两个参数,功能如下:
obj:  img标签组的父容器,类型为DOM对象;
oEvent: event对象。

这个函数的优点是html代码可以很简洁,使用图片也可以很少,只需要两张图片。事件句柄只需要写在img的父容器上即可。演示用的图片我用的是绝对地址,各位在使用的时候改成网站的相对地址就可以了。当我们点击的时候,我用的是个alert事件。事实上,我们会在这个地方用个ajax方法,把相关的参数传到服务器端。只要把alert(this._num+1)写成sendAjax(this._num+1)就可以了。

 提示:您可以先修改部分代码再运行


[ 本帖最后由 cly84920 于 2008-5-5 11:17 编辑 ]
已有 1 人评分威望 收起 理由
caiying2007 + 1 不错,支持原创

总评分: 威望 + 1   查看全部评分

阿当
西部数码顶级域名注册商39元抢注!
fatkun 
帖子
38
体力
91
威望
0
居住地
广东省 广州市
发表于 2008-5-5 11:12:24 |显示全部楼层
效果好像不错,收藏。
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

cuikai 

崔凯

钻石会员 手机认证 

帖子
2932
体力
6848
威望
16
发表于 2008-5-5 11:14:25 |显示全部楼层
鼠标挪到星星上,   能加个小手,是不是会更好?

cursor:hand;

使用道具 举报

帖子
130
体力
429
威望
11
居住地
广东省 深圳市
发表于 2008-5-5 11:17:10 |显示全部楼层
原帖由 cuikai 于 2008-5-5 11:14 发表
鼠标挪到星星上,   能加个小手,是不是会更好?

cursor:hand;


考虑到兼容性问题,应该用cursorointer;

使用道具 举报

cly84920 楼主

当当当

中级会员

帖子
209
体力
286
威望
4
发表于 2008-5-5 11:18:41 |显示全部楼层
恩,已经加上了手形了。谢谢提醒。另外,cursor用pointer比较好,hand是IE only。
阿当

使用道具 举报

cuikai 

崔凯

钻石会员 手机认证 

帖子
2932
体力
6848
威望
16
发表于 2008-5-5 11:21:13 |显示全部楼层
原帖由 cly84920 于 2008-5-5 11:18 发表
恩,已经加上了手形了。谢谢提醒。另外,cursor用pointer比较好,hand是IE only。



受教了   谢谢楼上两位。

使用道具 举报

帖子
39
体力
15
威望
0
发表于 2008-5-5 11:22:12 |显示全部楼层
收藏了!谢谢楼主分享!

使用道具 举报

gfm123 
帖子
8
体力
26
威望
0
居住地
河南省 郑州市
发表于 2008-5-5 11:32:32 |显示全部楼层
很好,谢谢!

使用道具 举报

帖子
62
体力
89
威望
0
发表于 2008-5-5 12:27:45 |显示全部楼层
那个AJAX怎么写,楼主可以写出一整套完整的吗?

使用道具 举报

chong6 
帖子
815
体力
3513
威望
0
发表于 2008-5-5 12:36:48 |显示全部楼层
不错,但是该如何弄选择后可以提交数据库~?

使用道具 举报

cly84920 楼主

当当当

中级会员

帖子
209
体力
286
威望
4
发表于 2008-5-5 12:37:19 |显示全部楼层
那个ajax功能和这个函数的关系不大,是相对独立的功能模块,所以当然没有写在这个函数里。至于具体如何用ajax发送数据出去,那个要看你自己怎么使用ajax方法了。你是把ajax方法自己打个包使用呢,还是使用js库。我自己用的是jq,所以没有自己打包过ajax方法。你可以找一下哪里有ajax打包好的函数,或者干脆就用js库好了。推荐jq,上手太容易了。有基础的话,一周绝对够了。
阿当

使用道具 举报

togoog 

天使共舞

金牌会员 手机认证 

帖子
783
体力
3152
威望
0
居住地
上海市 闵行区
发表于 2008-5-5 17:16:58 |显示全部楼层
不可以第二次使用。。。

使用道具 举报

帖子
210
体力
918
威望
0
发表于 2008-5-5 17:20:29 |显示全部楼层
好像很不错哦。收藏了。

使用道具 举报

帖子
993
体力
3951
威望
14
居住地
广东省 汕头市
发表于 2008-5-5 17:24:27 |显示全部楼层
嗯,很不错的效果,学习了,谢谢楼主分享

使用道具 举报

cly84920 楼主

当当当

中级会员

帖子
209
体力
286
威望
4
发表于 2008-5-5 17:29:05 |显示全部楼层
原帖由 togoog 于 2008-5-5 17:16 发表
不可以第二次使用。。。


这个是故意的。因为我们确定点评之后就会定住,不会让它再次点评啊,一般网站都是这么做的。当然,除非你刷新,重新再做点评。
阿当

使用道具 举报

chong6 
帖子
815
体力
3513
威望
0
发表于 2008-5-5 21:13:58 |显示全部楼层
谢谢楼主~

我个人认为 没办法第二次使用,是最好的!!!不然没意思了~
我们网友是最无聊的,.,,说不定有人会一次点N次的~无法第二次使用做得很好!!
当然,刷新后就可以~呵呵`

使用道具 举报

gyct 
帖子
85
体力
271
威望
0
发表于 2008-5-6 08:53:00 |显示全部楼层
要是写cookies禁止重复打分就更好了~~~刷新后可以还是不太完善

使用道具 举报

帖子
114
体力
18
威望
0
发表于 2008-5-6 10:07:53 |显示全部楼层
阿当,我是大王,不错,顶一下。。

使用道具 举报

cly84920 楼主

当当当

中级会员

帖子
209
体力
286
威望
4
发表于 2008-5-6 10:23:53 |显示全部楼层
原帖由 gyct 于 2008-5-6 08:53 发表
要是写cookies禁止重复打分就更好了~~~刷新后可以还是不太完善


如果刷新应该表示会重新提交一份数据吧,我想应该给他一次重新打分的机会对不对?至于多少秒内不能连续提交数据,也可以放到服务器端去做拉,毕竟保存在客户端的cookie里,要删掉重新提交还是非常容易的。
阿当

使用道具 举报

帖子
993
体力
3951
威望
14
居住地
广东省 汕头市
发表于 2008-5-6 20:37:23 |显示全部楼层
下了一个外国佬做的,效果比楼主的好看些,http://www.m3nt0r.de/devel/raterDemo/
不过光js文件就3个,还要一个css,几十k了
楼主几行代码就实现了差不多的效果,而扩展性也不错,赞一个

它是一个图片,3个样式,用滑动门实现,楼主有没有看过阿,可以参考一下,改进一下外观就很完美了

使用道具 举报

zz1001 

农民也疯狂

银牌会员

帖子
512
体力
1236
威望
0
居住地
湖北省 仙桃市
发表于 2008-5-6 20:49:55 |显示全部楼层
不错,这个是你自己手编的吗?

使用道具 举报

cly84920 楼主

当当当

中级会员

帖子
209
体力
286
威望
4
发表于 2008-5-7 09:59:17 |显示全部楼层
没看过,谢谢你的资料,有时间看一下。同一种效果可以有多种思路实现的,哪种代码更精简,构思更巧妙才是王道^^。
阿当

使用道具 举报

dan59 
帖子
74
体力
147
威望
0
居住地
广东省 深圳市
发表于 2008-5-7 17:40:25 |显示全部楼层
代码简单啊,呵呵,JS就是爽。
我的MSN SPACE
spaces.msn.com/danielchen59/
团队的MSN SPACE
spaces.msn.com/51wdgroup/

使用道具 举报

lin516 
帖子
108
体力
497
威望
0
居住地
福建省 福州市
发表于 2008-5-22 12:43:41 |显示全部楼层
好文章,谢谢分享

使用道具 举报

冈萨蕾丝

初级会员

帖子
70
体力
327
威望
0
居住地
湖北省 宜昌市
发表于 2008-5-22 15:37:21 |显示全部楼层
很遗憾的是不能2次使用...

使用道具 举报

ascii 

阿斯奇

银牌会员

帖子
5179
体力
1865
威望
2
居住地
福建省 厦门市
发表于 2008-5-22 15:44:48 |显示全部楼层
又是一个我很需要的功能   收藏&学习
中国法律的存在形式都是.txt格式,不是.exe格式。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 08:55 , Processed in 0.148623 second(s), 9 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部