您的位置:首页 > Web前端 > JQuery

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

2010-07-15 09:02 183 查看
/article/5495132.html

http://www.rainweb.cn/article/311.html

先看下效果图



本博客上面的顶一下,踩一下效果是直接用别人做好的插件放上去的,上星期正好要用到这个效果,就去研究了下。下面就一步一步来实现整个效果。。。。

demo页面的实现

XML/HTML代码

<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代码就不贴出来了。

看下demo就知道了

有了demo,其他实现起来就方便多了,首先是页面获取html,页面第一次加载,用ajax获取后台数据,不要直接显示。(这里为了方便测试,就用asp作为后台语言)

下面是asp输出html代码

XML/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代码,很简单

javaScript代码

function getdigshtml()//获取顶一下,踩一下html

{

$.ajax({

type:'POST',

url:'digg.asp',

data:'action=getdigshtml',

success:function(msg){

$("#digg").html(msg);

}

})

}

输出完了,接下来一步就是digs和undigs的操作了,跟获取html的代码差不多

JavaScript代码

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()都要重新获取绑定下,这样就保证了数据的实时性。

看下最后的效果 点我下载演示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: