用jQuery写发布评论框,展开评论折叠评论

时间: 2024-01-15 21:04:29 浏览: 24
好的,以下是一个简单的示例代码: HTML: ```html <div class="comments"> <h3>评论</h3> <ul class="comment-list"> <li> <div class="comment-header"> <span class="comment-author">张三:</span> <span class="comment-time">2021-01-01 11:11:11</span> <a href="#" class="comment-reply">回复</a> </div> <div class="comment-content"> 这是一条评论。 </div> <ul class="children"> <li> <div class="comment-header"> <span class="comment-author">李四:</span> <span class="comment-time">2021-01-02 12:12:12</span> <a href="#" class="comment-reply">回复</a> </div> <div class="comment-content"> 这是一条回复。 </div> </li> </ul> </li> </ul> <div class="comment-form"> <textarea class="comment-textarea"></textarea> <button class="comment-submit">提交</button> </div> </div> ``` CSS: ```css .comments { margin-top: 20px; } .comment-list { list-style: none; padding-left: 0; } .comment-header { font-size: 12px; color: #666; margin-bottom: 5px; } .comment-author { font-weight: bold; } .comment-time { margin-left: 10px; } .children { margin-left: 20px; } .comment-form { margin-top: 20px; } .comment-textarea { width: 100%; height: 80px; margin-bottom: 10px; } .comment-submit { display: block; margin: 0 auto; } ``` JavaScript: ```javascript $(function() { // 展开折叠评论 $('.comments').on('click', '.comment-header', function() { $(this).next('.comment-content').slideToggle(); $(this).next('.children').slideToggle(); }); // 回复评论 $('.comments').on('click', '.comment-reply', function(e) { e.preventDefault(); var $parent = $(this).closest('li'); var $form = $('.comment-form').clone(true, true); $form.addClass('reply-form'); $form.find('.comment-submit').attr('data-parent', $parent.attr('id')); $form.insertAfter($parent.find('.comment-content')); }); // 提交评论 $('.comments').on('click', '.comment-submit', function() { var $textarea = $(this).siblings('.comment-textarea'); var $parent = $(this).closest('li'); var comment = $textarea.val(); var parentId = $(this).data('parent'); if (comment !== '') { var $comment = $('<li>'); $comment.attr('id', 'comment-' + Date.now()); $comment.html(` <div class="comment-header"> <span class="comment-author">匿名:</span> <span class="comment-time">${getCurrentTime()}</span> <a href="#" class="comment-reply">回复</a> </div> <div class="comment-content"> ${comment} </div> `); if (parentId) { var $children = $parent.find('.children'); if ($children.length === 0) { $children = $('<ul class="children">'); $parent.append($children); } $children.append($comment); } else { $('.comment-list').append($comment); } $textarea.val(''); } }); function getCurrentTime() { var date = new Date(); var year = date.getFullYear(); var month = padZero(date.getMonth() + 1); var day = padZero(date.getDate()); var hours = padZero(date.getHours()); var minutes = padZero(date.getMinutes()); var seconds = padZero(date.getSeconds()); return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; } function padZero(num) { return num < 10 ? '0' + num : num; } }); ``` 在这个示例中,我们使用了 jQuery 来实现评论框的功能: 1. 点击评论头部可以展开或折叠评论内容和子评论。 2. 点击回复按钮会在被回复的评论下面添加一个回复表单。 3. 点击提交按钮会将评论或回复添加到相应的位置,并清空评论框。 需要注意的是,这只是一个简单的示例,实际应用中可能会有更多的功能需求。

相关推荐

最新推荐

recommend-type

springboot整合jquery和bootstrap框架过程图解

主要介绍了springboot整合jquery和bootstrap框架过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

使用jQuery重置(reset)表单的方法

由于JQuery中,提交表单是像下面这样的: 代码如下:$(‘#yigeform’).submit()所以,想当然的认为,重置表单,当然就是像下面这样子喽: 代码如下:$(‘#yigeform’).reset()但是,不幸的是,这样写的话,会有一个让...
recommend-type

详解如何使用webpack打包多页jquery项目

主要介绍了详解如何使用webpack打包多页jquery项目,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

使用jQuery获取data-的自定义属性

jQuery.fn.dataset = function(attr, val) { // 获取数据集 if (arguments.length == 0) { var dataset = {}; jQuery(this).eq(0).each(function() { var attrs = this.attributes; for (var i = 0, l = attrs...
recommend-type

jquery实现input输入框实时输入触发事件代码

代码如下: &lt;input id=”productName” name=”productName” class=”wid10″ type=”text” value=”” /&gt; 代码如下: //绑定商品名称联想 $(‘#productName’).bind(‘input propertychange’, function() {...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用matlab绘制高斯色噪声情况下的频率估计CRLB,其中w(n)是零均值高斯色噪声,w(n)=0.8*w(n-1)+e(n),e(n)服从零均值方差为se的高斯分布

以下是用matlab绘制高斯色噪声情况下频率估计CRLB的代码: ```matlab % 参数设置 N = 100; % 信号长度 se = 0.5; % 噪声方差 w = zeros(N,1); % 高斯色噪声 w(1) = randn(1)*sqrt(se); for n = 2:N w(n) = 0.8*w(n-1) + randn(1)*sqrt(se); end % 计算频率估计CRLB fs = 1; % 采样频率 df = 0.01; % 频率分辨率 f = 0:df:fs/2; % 频率范围 M = length(f); CRLB = zeros(M,1); for
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。