如何检测jQuery评论回复按钮是否已被点击?
检测评论回复按钮是否已被点击的实现方案
需求:在现有jQuery代码的指定位置添加逻辑,检测是否已有评论回复按钮被点击过,若已有激活的回复状态则先恢复原状态,再处理当前点击;若没有则直接执行当前逻辑。
修改后的完整代码
<script> jQuery( function( $ ){ $( '.comment-reply-link' ).on( 'click', function(){ // 检测是否已有回复按钮被点击过(通过取消按钮的显示状态判断) var activeCancelBtn = $('#cancel-comment-reply-link:visible'); if (activeCancelBtn.length > 0) { // 已有激活的回复状态,先恢复原评论的回复按钮显示,隐藏取消按钮 var prevContainer = activeCancelBtn.closest('.comment_container'); prevContainer.find('.comment-reply-link').show(); activeCancelBtn.hide(); } var commentContainer = $(this).closest('.comment_container'); commentContainer.find('.comment-reply-link').hide(); $( '#cancel-comment-reply-link' ).parent().find( '.comment-reply-link' ).show(); $( '#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(); } ); } ); </script>
逻辑说明
- 通过选择器
$('#cancel-comment-reply-link:visible')检测是否存在显示中的取消回复按钮,以此判断是否已有回复按钮被点击激活 - 如果存在激活状态,先找到对应评论容器,恢复其回复按钮显示并隐藏取消按钮
- 之后再执行当前点击的回复按钮的逻辑,确保同一时间只有一个回复输入状态被激活
内容的提问来源于stack exchange,提问作者widkoinflm
相关产品推荐
相关产品推荐

