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 ajax执行后台方法
Mar 18 Javascript
style、 currentStyle、 runtimeStyle区别分析
Aug 01 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
Jul 03 Javascript
javascript伸缩菜单栏实现代码分享
Nov 12 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
Feb 21 Javascript
浅谈javascript中的call、apply、bind
Mar 06 Javascript
js仿3366小游戏选字游戏
Apr 14 Javascript
Vue.js Ajax动态参数与列表显示实现方法
Oct 20 Javascript
利用JavaScript实现拖拽改变元素大小
Dec 14 Javascript
BootStrap daterangepicker 双日历控件
Jun 02 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
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
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
python条件和循环的使用方法
2013/11/01 Python
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
python简单的三元一次方程求解实例
2020/04/02 Python
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
毕业生写求职信的要点
2014/03/04 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
民间个人借款协议书
2014/09/30 职场文书
2014年科普工作总结
2014/12/06 职场文书
革命电影观后感
2015/06/18 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python