HTML中有一个红心(默认中间是空的),后面有一个赞的数字。点一下红心或数字,红心变成实心的,数字加1,然后不能再点了。
<a href="javascript:void(0)" class="zan-heart"><img src="{wd:$site_template}images/zan.png" />
<span class="zan-number">{wd:$dianzan}</span></a>
下面是脚本处理:
<script>
$(function(){
var src2 = '/template/default/images/icon_favorites_selected_35f43f3.png';
$(".zan-heart").on('click', function(){
//判断是否被点过
if($(this).children('img').attr('src') == src2){
alert('您已经赞过了,谢谢哦!');
return;
}
$.get(
'{wd:function.url('api/dianzan',array('id'=>$id))}',
null,
function(data, state){
if(data == '-1'){
alert('对不起,您还没有登陆!');
location.href = "/member/";
}else{
$(".zan-number").html(data);
}
}
);
$(".zan-heart").children('img').attr('src', src2);
})
})
</script>
这里用到了jquery处理ajax的get方法。它比ajax方法稍微简单一点。它的原型如下:
$(selector).get(url,data,success(response,status,xhr),dataType)
url参数是必选的,其它都是可选参数。具体说明如下:
url,必需。要get的url地址。这个地址中其实也可参数的。
data,可选。要发送出去的参数,使用json的格式。即类似 {p1:p1,p2:p2},注意前一个p1是参数名,后一个p1是变量,所有都不用双引号。
success,成功后的回调函数。
dataType,可选。这是规定服务器端返回的数据类型。默认时,jquery会智能判断。可能的取值有:"xml"、"html"、"text"、"script"、"json"、"jsonp"。
举点例子看看:
$.get("test.cgi", { p1: "splaybow", p2: "splaybow.com" },
function(data){
alert("Data Loaded: " + data);