ajax点赞功能
用Repeater绑定数据,点赞功能,老大催着要,也没有太大的访问量暂时没写 数据并发
后台写方法读出点赞数据
开始写jQuery
//jquery基本语法就不细说了
<script type="text/javascript">
$(function(){
$(".img_zan").mouseover(function(){
$(this).children().attr("src","images/t_fwsc/Thumb_mouseover1.png");
});
$(".img_zan").mouseout(function(){
$(this).children().attr("src","images/t_fwsc/s-4.png");
});
$(".img_zan").click(function(){
$(this).children().attr("src","images/t_fwsc/Thumb_up2.png");
// $(".add0").removeClass("add_1");
// $(".add0").addClass("add_piao");
// $(".add0").animate({top:"-100px",opacity:'0'},"slow");
/******************************加一样式开始******************************/
$(this).next().children().children().next(".add0").removeClass("add_1");
$(this).next().children().children().next(".add0").addClass("add_piao");
$(this).next().children().children().next(".add0").animate({top:"-200px",opacity:'0'},"slow");
/******************************加一样式开始******************************/
var _a= parseInt($(this).next().text());//当前点赞数
var b="1";//嘻嘻,命名不规范了,测试用的
var masterId=$("#MasterId").val();//用户Id
var orgId=$(this).siblings("#OrgId").val();//联盟医院Id
//之前接触过Ajax,好久不写前端快忘干净了,看了看Jquery的API ----》》》http://www.w3school.com.cn
$.ajax({
url:"/ashx/MasterPraiseAjax.ashx", //发送请求的地址 Get请求方式
data:{WebName:b,masterId:masterId,OrgId:orgId},//参数 必须以键值对传递 master
async:false,//类型:Boolean 默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
success:function(data){ //返回值
if(data=="-1")//未登录情况下跳转
{
location.href = "Login.aspx"; //location.href实现客户端页面的跳转
}else if(data=="1"){ //点赞
_a+=1;
//alert(data);
}else if(data=="0"){ //取消点赞
_a-=1;
}else{
_a+=1;
}
}
});
$(this).next().children().text(_a);//给点赞数量重新赋值 (+1or-1)
$(this).removeClass("img_zan").addClass("img0");
$(this).next().removeClass("zanshu").addClass("zanshu0");
});
});
</script>
//下面是一般处理程序
using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Web.SessionState;
using Common;
using Model.Linq;
namespace Web.ashx
{
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class MasterPraiseAjax : IHttpHandler, IReadOnlySessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//Ajax传递的参数值
string a = context.Request.QueryString["WebName"];
string masterId = context.Request.QueryString["masterId"];
string orgId = context.Request.QueryString["orgId"];
try
{
if (masterId.IsNullOrEmptyOrWhiteSpace())
{
context.Response.Write("-1");
}
else
{
//一下就是点赞状态的操作的 数据量大的话不建议用如下写法,之后会研究一下 并发点赞 偷了懒了
if (!a.IsNullOrEmptyOrWhiteSpace())
{
phDataContext ph = new phDataContext();
PetMasterPraise prais = ph.PetMasterPraise.Where(p=>p.PetMasterId==Convert.ToInt32(masterId)&&p.SourceId==Convert.ToInt32(orgId)&&p.SourceType==2).FirstOrDefault();
//点赞
if (prais == null)
{
PetMasterPraise praise = new PetMasterPraise();
praise.PetMasterId = Convert.ToInt32(masterId);
praise.SourceId = Convert.ToInt32(orgId);
praise.SourceType = 2;
praise.CreateDate = DateTime.Now;
praise.State = 1;
praise.Title = "联盟点赞";
ph.PetMasterPraise.InsertOnSubmit(praise);
ph.SubmitChanges();
context.Response.Write(praise.State);
}
//点赞
else if (prais.State == 0)
{
prais.State = 1;
ph.SubmitChanges();
context.Response.Write(prais.State);
}
else
{
//取消点赞
prais.State = 0;
ph.SubmitChanges();
context.Response.Write(prais.State);
}
}
}
}
catch (Exception ex)
{
LogHelper.WriteLog("联盟点赞异常",ex);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
<div style="height: 30px; width: 150px; float: left; border: 0px;">
<input type="hidden" id='OrgId' value='<%#Eval("Id") %>' />
<div class="img_zan">
<img src="data:images/t_fwsc/s-4.png" /></div>
<div style="height: 30px; width: 60px; float: left; border: 0px;">
<span class="zan_span"><span class="zanshu"><%# StarCount(Eval("Id"),2) %></span><span class="add_1 add0">+1</span>
</span>
</div>
<input type="hidden" runat="server" id="hidPar" value="" />
<div style="height: 30px; width: 20px; float: left; border: 0px;">
</div>
<div style="height: 30px; line-height: 30px; width: 40px; float: left; border: 0px;">
点赞
</div>
</div>
小白一枚 写的多有不合理的地方会慢慢改进...
ajax点赞功能的更多相关文章
- JavaScript cookie操作实现点赞功能
JavaScript cookie操作实现点赞功能 参考实现原理,但是代码不够简洁,简洁代码参考:js操作cookie 实现一个点赞功能十分简单,主要问题在于不能重复点赞. 若是一个有用户的网站,可 ...
- div中加入iframe,可以实现Ajax的功能
div中加入iframe,可以实现Ajax的功能,如果查询的时候,比如说城市的选择,用Ajax去实现, 在.net 可以考虑用UpdatePanel,但是点击了查询刷新表格(表格需要重新刷新加载,非纯 ...
- JavaScript实现评论点赞功能
通过分析评论功能的逻辑关系,学会如何使用JavaScript实现评论.回复.点赞等各种功能 1.学会JavaScript处理日期和时间. 2.掌握Dom操作中的添加/删除子节点方法. 3.使用setT ...
- 基于微信小程序的用户列表点赞功能
代码地址如下:http://www.demodashi.com/demo/13997.html 一.前言 (1).适合人群 1.微信小程序开发者 2.前端工程师 3.想入门学习小程序开发的人员 4.想 ...
- 全栈项目|小书架|微信小程序-点赞功能实现
微信小程序端的点赞功能其实没什么好介绍的,无非就是调用接口改变点赞状态和点赞数量.需要注意的是取消点赞时的处理,我这里为了减少服务器接口的调用,直接本地存一个变量,修改这里的变量值即可. 由于源码都相 ...
- 全栈项目|小书架|服务器端-NodeJS+Koa2 实现点赞功能
效果图 接口分析 通过上面的效果图可以看出,点赞入口主要是在书籍的详情页面. 而书籍详情页面,有以下几个功能是和点赞有关的: 获取点赞状态 点赞 取消点赞 所以项目中理论上与点赞相关的接口就以上三个. ...
- 项目:jSon和Ajax登录功能
组件化网页开发 / 步骤二 · 项目:jSon和Ajax登录功能 要熟练编写封装的$.ajax({........})
- Day8-微信小程序实战-交友小程序-首页用户列表渲染及多账号调试及其点赞功能的实现
在这之前已经把编辑个人的所有信息的功能已经完成了 之后先对首页的列表搞动态的,之前都是写死的静态 1.之前都是把好友写死的,现在就在js里面定义一个数组,用循环来动态的绑定 在onReady中定义,取 ...
- JavaWeb网上图书商城完整项目--day02-6.ajax校验功能之页面实现
1 .现在我们要在regist.js中实现ajax的功能,使用用户名到后台查询是否注册,邮箱是否到后台注册,验证码是否正确的功能 我们来看regist.js的代码 //该函数在html文档加载完成之后 ...
随机推荐
- Windows Azure Service Bus (4) Service Bus Queue和Storage Queue的区别
<Windows Azure Platform 系列文章目录> 熟悉笔者文章的读者都了解,Azure提供两种不同方式的Queue消息队列: 1.Azure Storage Queue 具体 ...
- Hyperledger fabric Client Node.js Hello World示例程序
简介 Hyperledger fabric Client (HFC)提供了基于Node.js的应用接口来访问Hyperledger区块. 本文介绍了一个使用HFC访问IBM Bluemixr区块服务的 ...
- 运用javascript的成员访问特性来实现通用版的兼容所有浏览器的打开对话框功能
打开网页对话框,一般有三种方法:window.open.window.showModalDialog.window.showModelessDialog,每一种都有它的优点与不足.第一种方法:wind ...
- 【Android】你应该知道的调试神器----adb
最近跟着一个前辈在做TV应用,因为不能通过usb连接调试,接触到了adb,突然间觉得自己似乎发现了另外一个世界,借助adb shell命令对应用进行调试,简直方便得不行.更重要的是,这是命令行操作啊! ...
- 用2263份证件照图片样本测试how-old.net的人脸识别
上一年也就是这个时候微软根据自己的人脸识别API推出了一个识别照片中人脸年龄和性别的网站--http://how-old.net,小伙伴们各种玩耍,一年后的今天突发"奇想"地想测试 ...
- [译]针对科学数据处理的统计学习教程(scikit-learn教程2)
翻译:Tacey Wong 统计学习: 随着科学实验数据的迅速增长,机器学习成了一种越来越重要的技术.问题从构建一个预测函数将不同的观察数据联系起来,到将观测数据分类,或者从未标记数据中学习到一些结构 ...
- C语言学习005:不能修改的字符串
一段有问题的代码,你能看出来么? int main(){ char* msg="ABC"; msg[]=msg[]; puts(msg); ; } 编译这段代码并不会有什么问题,一 ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 '#TT' 中的标识列插入显式值。 sql server 临时表
当 IDENTITY_INSERT 设置为 OFF 时,不能向表 '#TT' 中的标识列插入显式值.我是在SqlServer写存储过程中遇到的这个错误,当时就心想:临时表怎么会有主键呢,我也没有设置主 ...
- ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First
ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库. Entity Frame ...
- 疯狂Android讲义 - 学习笔记(二)
Android应用的用户界面编程 2.1 界面编程与视图(View)组件 Android应用的绝大部分UI组件放在android.widget.android.view包及其子包中,所有UI组件都继承 ...