jQuery+ajax实现顶一下,踩一下效果


Posted in Javascript onJuly 17, 2010

demo页面的实现

<div class="digg" id="digg"> 
<div class="good"> <a href="#"> 
<p>这个文档不错</p> 
<div class="bar"> 
<div id="g_img" style="width:70%"></div> 
</div> 
<span class="num" id="num">70%(7000)</span> </a> </div> 
<div class="bad"> <a href="#"> 
<p>文档有待改进</p> 
<div class="bar"> 
<div id="b_img" style="width:30%"></div> 
</div> 
<span class="num">30%(3000)</span> </a> </div> 
</div>

主要一点就是通过百分比来控制g_img的宽度,至于css代码就不贴出来了。
演示代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Digg</title> 
<style type="text/css"> 
* { 
padding:0; 
margin:0; 
} 
.digg { 
height: auto; 
width: 190px; 
font-size:12px; 
font-weight:normal; 
} 
.digg a { 
display: block; 
height: 48px; 
width: 189px; 
background-image: url(images/mark.gif); 
background-repeat: no-repeat; 
position: relative; 
color: #000; 
text-decoration: none; 
} 
.digg .good { 
margin-bottom:10px; 
margin-top:5px; 
} 
.digg .good a { 
background-position: -189px 0px; 
} 
.digg .good a:hover { 
background-position: 0px 0px; 
} 
.digg .bad a { 
background-position: -378px 0px; 
} 
.digg .bad a:hover { 
background-position: -567px 0px; 
} 
.digg a p { 
padding-left:30px; 
line-height:25px; 
} 
.digg .bar { 
background-color: white; 
height: 5px; 
left: 20px; 
overflow: hidden; 
position: absolute; 
text-align: left; 
top: 30px; 
width: 55px; 
} 
.bar #g_img { 
background-image: url(images/sprites.gif); 
background-repeat: repeat-x; 
height: 5px; 
width: auto; 
} 
.bar #b_img { 
background-image: url(images/sprites.gif); 
background-repeat: repeat-x; 
height: 5px; 
width: auto; 
background-position: 0px -5px; 
} 
.num { 
color: #333; 
font: normal normal 100 10px/12px Tahoma; 
left: 80px; 
position: absolute; 
top: 26px; 
} 
.digg .good .bar { 
border: 1px solid #40A300; 
} 
.digg .bad .bar { 
border: 1px solid #555; 
} 
</style> 
</head> 
<body> 
<div class="digg" id="digg"> 
<div class="good"> <a href="#"> 
<p>这个文档不错</p> 
<div class="bar"> 
<div id="g_img" style="width:70%"></div> 
</div> 
<span class="num" id="num">70%(7000)</span> </a> </div> 
<div class="bad"> <a href="#"> 
<p>文档有待改进</p> 
<div class="bar"> 
<div id="b_img" style="width:30%"></div> 
</div> 
<span class="num">30%(3000)</span> </a> </div> 
</div> 
</body> 
</html>

有了demo,其他实现起来就方便多了,首先是页面获取html,页面第一次加载,用ajax获取后台数据,不要直接显示。(这里为了方便测试,就用asp作为后台语言)
下面是asp输出html代码
function getdigshtml()'输出html 
dim rsajax,sql,str,digsnum,undigsnum,digsnumall,digsper,undigsper 
Set rsajax=server.CreateObject("adodb.recordset") 
sql="select * from dig where id=1" 
rsajax.open sql,conn,1,1 
digsnum=rsajax("digs") 
undigsnum=rsajax("undigs") 
if isnull(digsnum) then digsnum=0 
if isnull(undigsnum) then undigsnum=0 
digsnumdigsnumall=digsnum+undigsnum 
if digsnumall=0 then 
digsper=0 
undigsper=0 
else 
digsper=FormatNumber(cint(digsnum)/cint(digsnumall),3)*100 
undigsper=FormatNumber(cint(undigsnum)/cint(digsnumall),3)*100 
end if 
str="<div class='good'>" 
strstr=str&"<a href=JavaScript:isdigs('digs') >" 
strstr=str&"<p>这个文档不错</p><div class='bar'><div id='g_img' style='width:"&digsper&"%'></div></div>" 
strstr=str&"<span class='num'>"&digsper&"%("&digsnum&")</span>" 
strstr=str&"</a></div><div class='bad'>" 
strstr=str&"<a href=JavaScript:isdigs('undigs') >" 
strstr=str&"<p>文档有待改进</p><div class='bar'><div id='b_img' style='width:"&undigsper&"%'></div></div>" 
strstr=str&"<span class='num'>"&undigsper&"%("&undigsnum&")</span>" 
strstr=str&"</a></div>" 
getdigshtml=str 
end function

输出完了 接下来就是前台获取,这时候我们就要用到jquery ajax,为什么不直接用ajax,原因很简单,我不会。。。。。看一下jquery中ajax代码,很简单
function getdigshtml()//获取顶一下,踩一下html 
{ 
$.ajax({ 
type:'POST', 
url:'digg.asp', 
data:'action=getdigshtml', 
success:function(msg){ 
$("#digg").html(msg); 
} 
}) 
}

输出完了,接下来一步就是digs和undigs的操作了,跟获取html的代码差不多
function isdigs(digtype)//顶一下,踩一下操作 
{ 
$.ajax({ 
type:'POST', 
url:'digg.asp', 
data:'action=digs&digtype='+digtype, 
/* beforeSend:function(){ 
$("#vote").hide(); 
$("#loadings").show(); 
}, ajax请求显示loading效果*/ 
success:function(msg){ 
switch (msg) 
{ 
/* 后台用来判断 
case '1': 
$("#loadings").hide(); 
$("#vote").show(); 
alert("请先登录!"); 
break; 
case '2': 
$("#loadings").hide(); 
$("#vote").show(); 
alert("请先下载,再操作!"); 
break; 
case '4': 
$("#loadings").hide(); 
$("#vote").show(); 
alert("您已经参与过评价!"); 
break;*/ 
case '3': 
getdigshtml();//重新绑定html 
//$("#loadings").hide(); 
//$("#vote").show(); 
alert("谢谢你的参与!"); 
break; 
default: 
} 
} 
}) 
}

注释掉的代码:一部分是后台数据合法验证用的,beforeSend这个方法是ajax请求执行前的相关操作(用于做loading比较多)
最后一步就是,每次数据提交完并且成功返回,getdigshtml()都要重新获取绑定下,这样就保证了数据的实时性。
演示代码需要asp环境,大家可以测试下。
打包下载地址: https://3water.com/jiaoben/28489.html
Javascript 相关文章推荐
JQuery 学习笔记01 JQuery初接触
May 06 Javascript
使用apply方法处理数组的三个技巧[译]
Sep 20 Javascript
jquery控制页面部分刷新的方法
Jun 24 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
Dec 22 Javascript
基于JavaScript实现图片剪切效果
Mar 07 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
详解用vue.js和laravel实现微信授权登陆
Jun 23 Javascript
JavaScript取得gridview中获取checkbox选中的值
Jul 24 Javascript
移动设备手势事件库Touch.js使用详解
Aug 18 Javascript
详解Vue如何支持JSX语法
Nov 10 Javascript
vue 点击按钮增加一行的方法
Sep 07 Javascript
小程序简单两栏瀑布流效果的实现
Dec 18 Javascript
flexigrid 类似ext grid的JS表格代码
Jul 17 #Javascript
基于JQuery的Pager分页器实现代码
Jul 17 #Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
Jul 17 #Javascript
JS延迟加载(setTimeout) JS最后加载
Jul 15 #Javascript
JavaScript.Encode手动解码技巧
Jul 14 #Javascript
JavaScript中的一些定位属性[图解]
Jul 14 #Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 #Javascript
You might like
php 中文和编码判断代码
2010/05/16 PHP
php实现读取超大文件的方法
2014/07/28 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
JavaScript中Function详解
2015/02/27 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
Python基于select实现的socket服务器
2016/04/13 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
python三大神器之fabric使用教程
2019/06/10 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
应聘收银员个人的求职信
2013/11/30 职场文书
优秀实习自我鉴定
2013/12/04 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
财务会计求职信范文
2015/03/20 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
数学备课组工作总结
2015/08/12 职场文书
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL
如何用Python搭建gRPC服务
2021/06/30 Python
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电
Python如何使用循环结构和分支结构
2022/04/13 Python