效果图:

html:

css:

.an{
margin-top:0px;
position: relative;
.popzframe,.popcframe{
display: none;
word-wrap: break-word;
position: absolute;
left:333px;
top:85px;
width: 120px;
height: 60px;
border:1px solid #e9e9e9;
background-color: #fff;
box-shadow: 4px 4px 7px -2px #888;
text-align: center;
vertical-align: middle;
.log{
display: inline-block;
margin-top: 20px;
span{
color: #FB452F;
font-weight: bold;
}
}
}
.popzgframe,.popcgframe{
display: none;
word-wrap: break-word;
position: absolute;
left:333px;
top:85px;
width: 130px;
height: 60px;
border:1px solid #e9e9e9;
background-color: #fff;
box-shadow: 4px 4px 7px -2px #888;
padding-left: 20px;
vertical-align: middle;
.log{
display: inline-block;
margin-top: 15px;
span{
color: #FB452F;
font-weight: bold;
}
}
.havecomment{
font-size: 12px;
}
}
.popcframe,.popcgframe{
left:457px;
}
.view{
display: inline-block;
text-align: center;
width:100px;
height:30px;
background:#FB452F;
border-radius:2px;
margin-right: 20px;
color:#fff;
font-size: 14px;
line-height: 30px;
margin-top:53px;
outline: none;
}
.dz{
margin-left: 333px;
&:hover{
cursor: pointer;
background: #FF5844;
}
}
.cc{
&:hover{
cursor: pointer;
background: #FF5844;
}
}
.ds{
background:#FFA42D;
&:hover{
cursor: pointer;
background: #FFAF48;
}
}
}
 
 
js:
//楼主处按钮
    //说明:点赞和踩是互斥的,并且只能点一次
    host(){
         //给楼主的点赞
         var onoff=true;
         var gate =true;
        $(".hostdz").click(function(){
            //两者都为真时,是没有按钮点击过,所以可以点击
            if(onoff && gate){
                var num=$(".hostdznum")[0].innerHTML;
                num++;
                //一个人只能点击一次,所以点击过的按钮就设置为false
                onoff=false;
                //点赞次数窗口下滑
                $(".hostdznum")[0].innerHTML=num;
                $(".popzframe").slideDown();
                $(".popzframe .log span")[0].innerHTML=num;
                //点赞次数窗口下滑三秒后收起来
                setTimeout(function(){
                    $(".popzframe").slideUp();
                },2000) 
                //当onoff按钮被点击后(false),那么踩踩按钮点击时,就会弹出已经评价过的窗口
                if(onoff){
                }else{                  
                    //给楼主的踩
                    $(".hostdown").click(function(){
                        $(".popcgframe").slideDown();
                        $(".popcgframe .log span")[0].innerHTML=$(".popzframe .log span")[0].innerHTML;
                        setTimeout(function(){
                            $(".popcgframe").slideUp();
                        },2000)
                    })
                
             }
            }else{
                //如果有按钮被点击过,那么弹出窗口都是已经点击过               
                //第二次点击点赞按钮(gate)
                $(".popzgframe .log span")[0].innerHTML=$(".popzframe .log span")[0].innerHTML;
                $(".popzframe").slideUp();
                $(".popzgframe").slideDown();
                setTimeout(function(){
                    $(".popzgframe").slideUp();
                },2000)                             
            }   
        })
         //给楼主的踩
         $(".hostdown").click(function(){
             if(onoff && gate){
                var num=$(".hostdownnum")[0].innerHTML;
                num++;
                gate=false;//设置只能点击一次
                $(".hostdownnum")[0].innerHTML=num;
                $(".popcframe").slideDown();
                $(".popcframe .log span")[0].innerHTML=num;
                setTimeout(function(){
                    $(".popcframe").slideUp();
                },2000)
                if(gate){
                }else{
                    //给楼主的赞
                     $(".hostdz").click(function(){
                        console.log(9999)
                        $(".popzgframe").slideDown();
                        $(".popzgframe .log span")[0].innerHTML=$(".popcframe .log span")[0].innerHTML;
                        setTimeout(function(){
                            $(".popzgframe").slideUp();
                        },2000)
                    })  
                }
             }else{
                    //第二次点击踩按钮(onoff)
                    $(".popcgframe .log span")[0].innerHTML=$(".popcframe .log span")[0].innerHTML;
                    $(".popcframe").slideUp();
                    $(".popcgframe").slideDown();
                    setTimeout(function(){
                        $(".popcgframe").slideUp();
                    },2000)                 
             }
            
        })
    }

工作笔记--js-点赞按钮和踩踩按钮互斥??怎么写?的更多相关文章

  1. 工作笔记——js前端规范

    去年年末做了一个项目,因为第一次做前端管理职位,第一次做整个项目的前端架构很多东西都不熟悉,作为一次大胆的尝试. js方面的只有一个坑,那就是前端与后端的网络层封装,这一块是在后端的协助下开发的.网络 ...

  2. 工作笔记——js与文件上传下载

    1 js判断上传文件的后缀名,文件大小 //判断照片大小 function getPhotoSize(obj){ photoExt=obj.value.substr(obj.value.lastInd ...

  3. amazeui学习笔记--js插件(UI增强2)--按钮交互Button

    amazeui学习笔记--js插件(UI增强2)--按钮交互Button 一.总结 1.按钮loading状态: <button type="button" class=&q ...

  4. [转载]ExtJs4 笔记(5) Ext.Button 按钮

    作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律 ...

  5. CSS3和js炫酷点击按钮3D翻转动画特效

    简要教程 flipside是一款使用CSS3和js制作的炫酷点击按钮无缝过渡到确认面板的过渡动画特效.该点击按钮特效在按钮不同方向的边部点击时,产生的过渡动画特效是不一样的. 在线预览   源码下载 ...

  6. 一个很不错的支持Ext JS 4的上传按钮

    以前经常使用的swfUpload,自从2010年开始到现在,很久没更新了.而这几年,flash版本已经换了好多个,所以决定抛弃swfupload,使用新找到的上传按钮. 新的上传按钮由harrydel ...

  7. clips 前端 js 倒计时 获取验证码的按钮

    <a href="javascript:void(0);" onclick="get_captcha()" class="btn btn-def ...

  8. EasyUI笔记(四)菜单和按钮

    本系列只列出一些常用的属性.事件或方法,具体完整知识请查看API文档 Menu(菜单) 菜单组件通常用于快捷菜单.他是构建其他菜单组件的必备基础组件.比如:menubutton和splitbutton ...

  9. Sencha Touch2 工作笔记

    Sencha Touch2 工作笔记 Ext.dataview.List activate( this, newActiveItem, oldActiveItem, eOpts ) Fires whe ...

随机推荐

  1. TCP端口扫描

    # TCP三次握手 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1 ...

  2. Java 并发编程:volatile的使用及其原理(二)

    一.volatile的作用 在<Java并发编程:核心理论>一文中,我们已经提到过可见性.有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果 ...

  3. mysql的高可用之rounter

    参考: https://segmentfault.com/a/1190000011970688

  4. Objective-C中的自动释放池

    自动释放池块@autoreleasepool 自动释放池块在MRC和ARC下都可以使用.在MARC下,为了将自动释放池块内部的变量放入自动释放池,需要手动调用autorelease方法:在ARC下,只 ...

  5. Boruvka

    大概是这样的:一开始图中有\(n\)个连通块,每次操作我们选出各个连通块连出去的最短的边(如果有相同边权的边的话可以把序号作为第二关键字),然后把这些边加入最小生成树. 最坏的情况下每次操作都会让当前 ...

  6. centos7下apache启动报错记录

    http重启httpd发生错误,后面按照提示执行systemctl status httpd.service命令 按照提示,继续执行journalctl -xe 这里显示了详细的错误信息,并且给出了解 ...

  7. 2019牛客暑期多校训练营(第九场) - B - Quadratic equation - 二次剩余

    https://ac.nowcoder.com/acm/contest/889/B 假如我们能够求出 \(x-y\) 在模p意义的值,那么就可以和 \(x+y\) 联立解出来了. 由于 \((x-y) ...

  8. js实现简繁转换

    document.write(" <a name=\"StranLink\" id=\"StranLink\" style=\"col ...

  9. luogu P4076 [SDOI2016]墙上的句子

    luogu loj 题意看了我半天(逃 (应该是我语文太差了) 题意是要确定每一行和每一列的看单词的顺序,使得同时正着出现和反着出现在里面的单词数量最少,每行和每列的性质是这一行所有单词反过来的单词要 ...

  10. node.js使用swig模块

    1.安装swig npm install swig --save 2.创建app.js文件 /*应用程序入口文件*/ /*加载express模块*/ var express = require('ex ...