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 相关文章推荐
DHTML Slide Show script图片轮换
Mar 03 Javascript
jQuery使用数组编写图片无缝向左滚动
Dec 11 Javascript
Node.js实现Excel转JSON
Apr 24 Javascript
在JavaScript中操作时间之getMonth()方法的使用
Jun 10 Javascript
基于Node.js实现nodemailer邮件发送
Jan 26 Javascript
第五章之BootStrap 栅格系统
Apr 25 Javascript
JavaScript获取短信验证码(周期性)
Dec 29 Javascript
BootStrap实现鼠标悬停下拉列表功能
Feb 17 Javascript
canvas实现图片根据滑块放大缩小效果
Feb 24 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
Jan 17 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
Mar 05 Javascript
Vue 列表页带参数进详情页的操作(router-link)
Nov 13 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
php无限极分类实现方法分析
2019/07/04 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
使用tensorflow实现AlexNet
2017/11/20 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
Python笔记之facade模式
2019/11/20 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
社区交通安全实施方案
2014/03/22 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android
【2·13】一图读懂中国无线电发展
2022/02/18 无线电
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js
Golang 并发编程 SingleFlight模式
2022/04/26 Golang
Java实现简单小画板
2022/06/10 Java/Android