js实现点赞按钮功能

js实现点赞按钮功能,包括只能点赞一次,超过一次时提示文字(3秒后消失),点击时次数加一(给后端传值在这里解决)。

在这里插入图片描述
在这里插入图片描述
没有按钮加图片,只用了改变颜色来表示
首先明确html页面代码

	<span id="tixing0" ></span>
				<div class="dianzan_11">
					<div class="dianzan_font">
						<center><span id="cishu0">18</span></center>
					</div>
					<button class="btn" id="0" onclick=""></button>
				</div>

首先我们要知道。在DOM中id是唯一的,这就表明我们获取span标签并进行区分时需要费点劲。我是根据button的id来标记和他一起的另外两个sapn标签,js中是这样实现的

var i=2;//评论条数
var Atixing=new Array(); //存储提示字的id名
var Acishu=new Array(); //存储次数的id名
var count=new Array();//限制每次按钮只可以单击一次
window.onload = function(){//页面加载出来后实现下列方法

bianliButtonCount();//获取所有按钮id
button1();//根据button 不同id进入不同标签
chushizhi();//将数据初始化
}
function bianliButtonCount(){
	for(var j = 0;j<i;j++){
		 Atixing[j] = String("tixing"+j);
		 Acishu[j] = String("cishu"+j);
		//alert(Atixing[j]);	
	}
}

这样便将一条评论的button标签和另外两个span标签合并了
类似:button id = 0;
span id= tixing0;
span id = cishu0;
这样就可以实现一个三者的捆绑,不会错乱。
接下来就是点击按钮式进入一个函数
第一次实现次数+1,并向后端传值
其他的都是显示提示字(提示字3秒消失)

function button1(){
var arr = document.getElementsByTagName('button');
	for(var i = 0;i<arr.length;i++){
		arr[i].onclick = function(){
			var btn = document.getElementById(this.id);
			btn.style.background="red";
			change(this.id);//根据button id,通过这个函数改变次数、提示字
		}
		
	}
}
function change(id){
if(count[id]!=1){
	document.getElementById(Acishu[id]).innerHTML="14";	
	count[id]=1;
}else{
	document.getElementById(Atixing[id]).innerHTML="亲,您的赞太多了~";
	setTimeout(function(){document.getElementById(Atixing[id]).innerHTML="";},3000);//提示字三秒消失
}
}

还有一点,评论条数是从后端传来的,我们这里只是模拟了两条,已经评论的次数都是模拟的。完整代码如下:HTML

<!--评论1-->
		<div class="content_2_box1">
			<div class="content_2_box1_1">
				<img src="images/001.gif" >
				<font class="content_2_box1_1_font">网络用户</font>
				<span id="tixing0" style="font-size:30px;color:red;position:relative;left:200px;top:-40px;"></span>
				<div class="dianzan_11">
					<div class="dianzan_font">
						<center><span id="cishu0">18</span></center>
					</div>
					<button class="btn" id="0" onclick=""></button>
				</div>
			</div>
			<div class="content_2_box1_2">
				<font>阿斯达四大撒大所,爱仕达撒所大所所大所,阿斯达萨达萨达!阿斯达四大撒大所
				奥术大师大所!啊啊撒大所大所</font>
			</div>
		</div>
		
		<!--评论1-->
		<div class="content_2_box1">
			<div class="content_2_box1_1">
				<img src="images/001.gif" >
				<font class="content_2_box1_1_font">网络用户</font>
				<span id="tixing1" style="font-size:30px;color:red;position:relative;left:200px;top:-40px;"></span>
				<div class="dianzan_11">
					<div class="dianzan_font">
						<center><span id="cishu1"></span></center>
					</div>
					<button class="btn" id="1" onclick=""></button>
				</div>
			</div>
			<div class="content_2_box1_2">
				<font>阿斯达四大撒大所,爱仕达撒所大所所大所,阿斯达萨达萨达!阿斯达四大撒大所
				奥术大师大所!啊啊撒大所大所</font>
			</div>
		</div>

js代码

var i=2;//评论条数
var Atixing=new Array(); //存储提示字的id名	
var Acishu=new Array(); //存储次数的id名
var count=new Array();//限制每次按钮只可以单击一次
window.onload = function(){//页面加载出来后实现下列方法

bianliButtonCount();//获取所有按钮id
button1();//根据button 不同id进入不同标签
chushizhi();//将数据初始化
}
function bianliButtonCount(){
	for(var j = 0;j<i;j++){
		 Atixing[j] = String("tixing"+j);
		 Acishu[j] = String("cishu"+j);
		//alert(Atixing[j]);	
	}

}
function chushizhi(){
for(var m = 0;m<i;m++){
		document.getElementById(Atixing[m]).innerHTML="";	
		document.getElementById(Acishu[m]).innerHTML="13";		
	}

}
function button1(){
var arr = document.getElementsByTagName('button');
	for(var i = 0;i<arr.length;i++){
		arr[i].onclick = function(){
			var btn = document.getElementById(this.id);
			btn.style.background="red";
			change(this.id);//根据button id,通过这个函数改变次数、提示字
		}
		
	}
}
function change(id){
if(count[id]!=1){
	document.getElementById(Acishu[id]).innerHTML="14";	
	count[id]=1;
}else{
	document.getElementById(Atixing[id]).innerHTML="亲,您的赞太多了~";
	setTimeout(function(){document.getElementById(Atixing[id]).innerHTML="";},3000);//提示字三秒消失
}

}
发布了11 篇原创文章 · 获赞 11 · 访问量 213

猜你喜欢

转载自blog.csdn.net/Wangdiankun/article/details/104261277