zoukankan      html  css  js  c++  java
  • 点赞和关注功能

    封装的ttyu调接口

    function webData(Actions,userI){
        tdata = { type: 'web', isJsonp: false, uuid: null, compId: null, userId: null, action: Actions, tableName: null, where: userI, fieldName: null, sql: null, datas: null, tableDatas: null, paras: null,
            GoPage: { index: null, rows: null }, Tree: { id: null, pId: null, name: null, other: null }
        };
    }

    1、点赞功能(赞和踩)

    (1)获取数据中的赞ID和踩ID

    var zan1 = "s" + datas[i].zanid;
    var cai = "s" + datas[i].downid;

    (2)判断赞id中是否有当前用户;(存在赞变成红色,踩灰色)

    if (zan1 != null && zan1.indexOf(userID) > 0) {
        str += "<i class='iconfont icon-praise-copy' style='color: red;'></i>" +
               " <span>(" + datas[i].thumbsUpCount + ")</span>";
        str += "<i class='iconfont icon-good-fill' style='color: #595757;' ></i>" +
               " <span>(" + datas[i].thumbsDownCount + ")</span>";
    }

    (3)判断踩id中是否有当前用户;(存在赞变成灰色,踩红色)

    if (cai != null && cai.indexOf(userID) > 0) {
        str += "<i class='iconfont icon-praise-copy' style='color: #595757;'></i>" +
               " <span>(" + datas[i].thumbsUpCount + ")</span>";
        str += "<i class='iconfont icon-good-fill' style='color:  red;'></i>" +
               " <span>(" + datas[i].thumbsDownCount + ")</span>";
    }

    (4)如果赞id中没有当前用户,且踩id中没有当前用户(均是灰色,且有点击事件)

    if (zan1 != null && zan1.indexOf(userID) < 0 && cai != null && cai.indexOf(userID) < 0) {
        str += "<i class='iconfont icon-praise-copy' style='color: #595757;' onclick=Upcount(this,'" + datas[i].ID + "','" + datas[i].zanid + "')></i>" +
               " <span>(" + datas[i].thumbsUpCount + ")</span>";
        str += "<i class='iconfont icon-good-fill' style='color: #595757;'   onclick=Downcount(this,'" + datas[i].ID + "','" + datas[i].downid + "')></i>" +
               " <span>(" + datas[i].thumbsDownCount + ")</span>";
    }

    (5)插入SQL语句,赞

    function Upcount(objup,lid,zan) {
         zan=zan+","+userID;  //将赞ID与用户ID拼接
         $(objup).css("color",'red'); //当前icon变红色
         var sql1 = "update docReply set  thumbsUpCount=thumbsUpCount+1 ,zanid='"+zan+"' where Id="+lid;  //列表id
         webData("add",sql1);
         ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){
           //移除当前元素和它兄弟元素的点击事件
           $(objup).removeAttr('onclick');  //当前元素移除onclick事件
            $(objup).siblings('i').removeAttr('onclick');  //它的兄弟移除onclick事件
            var number = $(objup).next('span').text();
            number=number.replace(/(/,""); //去除前括号
            number=number.replace(/)/,""); //去除后括号
            number = parseInt(number); //字符串转化成数字
            $(objup).next('span').text("");
            var number2 = number+1;  //数量+1
            $(objup).next('span').text("("+number2+")");
         });
    }

    (6)插入SQL语句,踩

    function Downcount(objdown,lid,down) {
            down = down+","+userID;  //将踩id与用户id拼接
            $(objdown).css("color",'red');  //当前icon变成红色
            sql = "update docReply set thumbsDownCount=thumbsDownCount+1,downid='"+down+"'  where Id="+lid;  //列表id
            webData("add",sql);
            ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){
                //移除当前元素和它兄弟元素的点击事件
                $(objdown).removeAttr('onclick');  //当前元素移除onclick事件
                $(objdown).siblings('i').removeAttr('onclick');  //它的兄弟元素移除onclick事件
                var number = $(objdown).next('span').text();
                number=number.replace(/(/,""); //去除前括号
                number=number.replace(/)/,""); //去除后括号
                number = parseInt(number); //字符串转化成数字
                $(objdown).next('span').text("");
                var number2 = number+1;  //数量+1
                $(objdown).next('span').text("("+number2+")");
            });
    
        }

    2、关注功能

    1、一个列表被关注

    (1)获取当前已关注的用户

    $(function() {
            //获取关注的列表id
            webData("getfollowask", userID);  //传用户id
            ttyu.server.doServiceJsonp(serverJson.serverUrl, tdata, "", function (data) {
                var num=0; //用于判断是否添加了 红色关注图标;为1 用户已关注,为0 用户第一次关注
                if(data!=undefined || data != null){
                    if(data.length>0){  //判断有没有数据
                        for(var k=0;k<data.length;k++){  //循环关注列表id
                            //判断获取到的关注的列表id是否和当前的列表id相同
                            if(data[k].befuserid==listID){
                                $('.icon-xin1').addClass('red');
                                num=num+1;  //给num加1,就是已关注过
                            }
                        }
                    }
                }
                //如果用户第一次关注,绑定事件
                if(num==0){
                    //添加绑定事件
                    $('.icon-xin1').attr('onclick','xin()');
                }
            });
        });

    (2)插入SQL表

    //点击关注时,插入SQL
    function
    xin() {
         //获取listid
         var listids = $("input[name=report]").val();
    var sql=" insert into myfollowask(userid,befuserid)values("+userID+","+listids+")"; //用户id,列表id
            webData("add",sql);
            ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){});
    
            $('.icon-xin1').removeAttr("onclick");  //移除onclick事件
            $('.icon-xin1').addClass("red");      //给当前的icon添加红色
    
            //根据列表id修改表的点赞数
            var sql1 = "update doc set  lightCount=lightCount+1 where Id="+listID;
            webData("add",sql1);
            ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){});
        }

    2、多个列表需要被关注

    (1)获取已关注的用户

    var follow;  //定义全局变量,获取已关注人的id,供下方获取
    //获取关注的问答
    $(function() {
        webData("getfollowask",userID);
        ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){
          if(data !=undefined || data !=null) {
             follow=data;
          }
       });
    });

    (2)动态创建标签,并获取数据

    for (var i = 0; i < datas.length; i++) {
       var num=0;//用于判断是否添加了 红色关注图标;为1 用户已关注,为0 用户第一次关注;
      if(follow.length>0){
         for(var k=0;k<follow.length;k++){
             //判断获取到的关注的列表id是否和当前的列表id相同,如果相同,icon变红色,无点击事件
             if(follow[k].befuserid==datas[i].ID){
                    str+="<i class='iconfont icon-xin1 red'></i>" ;
                    num=num+1;
               }
           }
        }
      //如果是用户第一次关注,创建icon 并添加点击事件
    if(num==0){ str+="<i class='iconfont icon-xin1' onclick=usercare(this,"+datas[i].ID+")></i>"; } }

    (3)插入SQL

    //点击心关注问题
    function usercare(thisobj,idobj) {  //this,列表id
       // 插入SQL语句
    var sql=" insert into myfollowask(userid,befuserid)values("+userID+","+idobj+")"; //用户id,列表id webData("add",sql); ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){});
       // 修改SQL语句
    var sql1="update ask set lightcount=lightcount+1 where id="+idobj; webData("add",sql1); ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){}); $(thisobj).removeAttr("onclick"); $(thisobj).css("color",'red'); firm("关注成功"); //自己封装的弹框
    }
  • 相关阅读:
    机器学习之——正规方程法
    机器学习之——学习率
    机器学习之梯度下降法
    机器学习之线性回归算法
    集体智慧编程学习笔记——第一讲
    机器学习之归一化和标准化总结
    推荐系统实战-学习笔记第一章
    洛谷P1396 营救 题解
    洛谷P3905 道路重建
    洛谷P2384 最短路 题解
  • 原文地址:https://www.cnblogs.com/dxt510/p/7825598.html
Copyright © 2011-2022 走看看