You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript评论回复按钮切换异常:未取消时切换评论致回复按钮消失

问题及解决方案

问题描述

我有一个带有回复和取消回复按钮的评论页面,现有代码可实现点击回复按钮时切换显示取消回复按钮,但存在问题:当点击某条评论的回复按钮后,未点击该评论的取消回复按钮就点击另一条评论的回复按钮,前一条评论的回复按钮会消失。需要修改代码解决该问题且不破坏原有功能。

原代码

jQuery( function( $ ){
    $( '.comment-reply-link' ).on( 'click', function(){
        var commentContainer = $(this).closest('.comment_container');
        commentContainer.find('.comment-reply-link').hide();
        $( '#cancel-comment-reply-link' ).insertAfter( this ).show();
    } );
    $( '#cancel-comment-reply-link' ).on( 'click', function(){
        var commentContainer = $(this).closest('.comment_container');
        commentContainer.find('#cancel-comment-reply-link').insertAfter(this).hide();
        commentContainer.find('.comment-reply-link').show();
    } );
} );

修改后的代码

jQuery( function( $ ){
    $( '.comment-reply-link' ).on( 'click', function(){
        // 重置所有评论的回复状态:显示回复按钮,隐藏取消按钮
        $('.comment_container').each(function() {
            $(this).find('.comment-reply-link').show();
            $(this).find('#cancel-comment-reply-link').hide();
        });
        
        // 处理当前点击的评论按钮切换
        var commentContainer = $(this).closest('.comment_container');
        commentContainer.find('.comment-reply-link').hide();
        $( '#cancel-comment-reply-link' ).insertAfter( this ).show();
    } );
    $( '#cancel-comment-reply-link' ).on( 'click', function(){
        var commentContainer = $(this).closest('.comment_container');
        commentContainer.find('#cancel-comment-reply-link').hide();
        commentContainer.find('.comment-reply-link').show();
    } );
} );

改动说明

  • 新增遍历所有评论容器的逻辑,在点击新的回复按钮前,先把所有评论的回复按钮恢复显示、取消按钮隐藏,确保之前的评论状态被重置
  • 保留原有处理当前评论按钮切换的逻辑,不影响原本功能
  • 取消按钮的处理逻辑无需修改,依然只针对当前评论容器进行按钮切换

内容的提问来源于stack exchange,提问作者widkoinflm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:12:20