HTML中有一个红心(默认中间是空的),后面有一个赞的数字。点一下红心或数字,红心变成实心的,数字加1,然后不能再点了。

<a href="javascript:void(0)" class="zan-heart"><img src="{wd:$site_template}images/zan.png" />

&nbsp;<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);

03-14 09:24