项目实训——初版的页面优化(3)

项目实训——初版的页面优化(3)


这篇主要讲功能的增加。

话题的评论删除

首先放上评论的模板:

<script id="imgCardScript" type="text/html">
    <div style="height: 44px; background-color: #6d638f;margin-bottom: 5px">
        <p style="color: ghostwhite;font-size: 22px;margin: 0 0 10px 15px;padding-top: 5px;font-weight: 300">评论</p></div>
    <ul>
        {{#  layui.each(d, function(index, item){
        }}
        <li>
            <div class="layui-card commentcard showcard" id={{item.id.rank}} style="margin-bottom: 2px;background-color: floralwhite" >
                <div class="layui-card-header"  style="padding:5px 0 45px 20px;font-size: 20px;color: slateblue">
                    {{item.user_id}}<span style="display: none">{{item.user_id}}</span></div>
                <div class="layui-card-body">
                    <p style="color: #6d638f">{{item.topic_comments}}</p>
                    <p style="color: #6d638f">{{item.comment_time}}<span style="float: right;margin-right: 50px;">{{item.id.rank}}</span></p>
                </div>
            </div>
        </li>
        {{#
        }); }}
        {{#  if(d.length === 0){ }}
        无数据
        {{#  } }}
    </ul>
</script>

相比之前的模板,在header里多加了一个<span style="display: none">{{item.user_id}}</span>。这样后期就能把评论人的名字显示出来。
第一步,显示删除图标。当鼠标移入评论的时候,图标显示,移出则不。
第二步,通过判断用户和发帖人或评论人的id是否吻合,区分显示删除图标。
第三步,点击图标后要进行二次确认,通过ajax实现删除功能。

<script>
    $('body').on("mouseenter",".commentcard",function (event) {
        var header = $(this).children("div .layui-card-header");
        var rank = event.currentTarget.id;
        //创建新元素
        var div = document.createElement("div"),
            delcomment = document.createElement("i"),
            reply = document.createElement("i");
        div.className = "toolbox";
        div.style.cssFloat = "right";
        div.style.marginRight = "50px";
        delcomment.id="del";
        delcomment.classList.add("layui-icon");
        delcomment.classList.add("layui-icon-delete");
        delcomment.style.color = "#4d2eb3";
        delcomment.style.fontSize = "20px";
        delcomment.style.marginRight = "20px";
        reply.id = "reply";
        reply.classList.add("layui-icon");
        reply.classList.add("layui-icon-dialogue");
        reply.style.color = "#4d2eb3";
        reply.style.fontSize = "20px";
        var topicuid = [[${topic.user_id}]];
        var userid = [[${session.loginUserId}]];
        //如果用户id和发帖人id相同,或者和回复人id相同,删除图标append
        if(topicuid==userid||userid==header.children().text()){
            div.appendChild(delcomment);
        }
        div.appendChild(reply);//回复,可先注释
        header.append(div);//显示
        //点击删除
        layui.use('layer', function() {
            var layer = layui.layer;
            $("#del").on("click", function () {
                layer.confirm("确定删除?", {
                    title:"提示",
                    btn:["取消","确定"],
                    //右上角x号
                    cancel: function (index) {
                        layer.close(index)
                    },
                    //取消
                    btn1:function (index) {
                        layer.close(index);
                    },
                    //确定
                    btn2:function (index) {
                        console.log(rank);
                        $.ajax({
                            url:""
                            ,dataType:"json"
                            ,data:{"rank":rank,"topicid":[[${topic.topic_ID}]]}
                            ,success: function (json) {
                                if (json.code == 0) {
                                    //刷新页面
                                }else {
                                    layer.alert("删除失败,请稍后再试");
                                    return false;
                                }
                            }
                        })
                    }
                });
            });
        });
    });
    $('body').on("mouseleave",".commentcard",function () {
        var box = $(this).children("div .layui-card-header").children("div .toolbox");
        box.remove();
    });
</script>

实现根据城市筛选功能

为了让板块页面不那么枯燥,我们决定增加筛选功能。此处参考boss直聘的页面:
在这里插入图片描述
左边显示用户选择的城市,右边则是一些热门城市和恢复初始(不限),最右是全部城市的选择。

<div class="conditionbox">
    <dl class="condition-city">
        <dd class="city-wrapper">
            <span id="selectedcity" style="color: #009688;margin-right: 10px;">不限</span>
            <i class="layui-icon layui-icon-right" style="font-size: 12px; color: #666;margin-right: 15px;"></i>
            <a class="city" href="javascript:;">不限</a>
            <span style="margin-right: 15px;color: #6d638f">热门城市:</span>
            <a class="city">北京</a>
            <a class="city">上海</a>
            <a class="city">广州</a>
            <a class="city">深圳</a>
            <a class="city">杭州</a>
            <a class="city">西安</a>
            <a class="city">天津</a>
            <a class="city">重庆</a>
            <a class="city">成都</a>
            <a class="city">长沙</a>
            <a class="city">苏州</a>
            <a class="get-all-cities" style="color:#009688;margin-left: 10px ">全部城市</a>
        </dd>
    </dl>
</div>

全部城市的显示和选择就不展示了,我这里用了很笨的方法,把所有城市都写进网页里了,代码巨长无比。
当点击选择城市后,城市名显示在左侧,同时进行查询。

<script>
    $(".city-wrapper").on("click",".city",function (event) {
        var city = event.currentTarget.text;//获取城市
        console.log(city);
        $("#selectedcity").text(city);
        $.ajax({
            url:""
            ,dataType:"json"
            ,data:{"city":city}
            ,success: function (json) {
                if (json.code == 0) {
                    //重新获得数据
                } else {
                    alert("失败,请稍后再试");
                    return false;
                }
            }
        });
    });
    $(".city-wrapper").on("click",".get-all-cities",function (event) {
        $("#cityshow").toggle();
        $("#over").toggle();
    });
    $("#cityshow").on("click","#cityclose",function (event) {
        $("#cityshow").toggle();
        $("#over").toggle();
    });
    $("#cityshow").on("click",".cities",function (event) {
        var city = event.currentTarget.innerHTML;//获取城市
        console.log(city);
        $("#selectedcity").text(city);
        $("#cityshow").toggle();
        $("#over").toggle();
        $.ajax({
            url:""
            ,dataType:"json"
            ,data:{"city":city}
            ,success: function (json) {
                if (json.code == 0) {
                    //重新获得数据
                    $("#selectedcity").text(city);
                    $("#cityshow").toggle();
                    $("#over").toggle();
                } else {
                    alert("失败,请稍后再试");
                    return false;
                }
            }
        });

    });
</script>

实现图如下:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值