如何打开仅选定评论的回复文本框?

时间:2019-10-15 11:44:16

标签: javascript php jquery laravel laravel-blade

有一个帖子。在帖子中,用户也可以评论和回复。 可能会有很多评论。每个评论都有回复按钮。每个答复按钮具有相同的类reply。因此,每当我尝试回复某些评论并按回复按钮时。每个评论的回复文本框打开。我想打开所选评论的回复text box

我尝试过先隐藏reply form,然后在单击“回复”按钮后显示它。 评论ID也可以通过回复按钮传递给jquery。

Blade file
<a href="#" class="reply">Reply</a>
<div class="reply-form">
  <form action="{{route('reply')}}" method="post">
     @csrf
     <input name="reply" type="text">
  </form>
</div>
jquery file
$('.reply-form').hide();
$('.comment-container').delegate(".reply","click",function(e){
  e.preventDefault();
  $('.reply-form').toggle(function(){

  });
})

对于每条评论,都有一个按钮答复,其类名为reply 因此,每条评论回复都会在我clickreply button之后出现。

3 个答案:

答案 0 :(得分:1)

尝试

$('.reply-form').hide();
$('.comment-container').delegate(".reply","click",function(e){
  e.preventDefault();
  $($(this).find('.reply-form')).toggle(function(){

  });
});

答案 1 :(得分:0)

尝试以下操作:

$('.reply-form').hide();
$('.reply').click(function(e) {
   e.preventDefault();
   var replyForm = $(this).siblings('.reply-form');
   $(replyForm).toggle(function(){

   });
});

答案 2 :(得分:0)

尝试更改jquery。

Blade file
<a href="#" class="reply">Reply</a>
<div class="reply-form d-none">
  <form action="{{route('reply')}}" method="post">
     @csrf
     <input name="reply" type="text">
  </form>
</div>

为D-none添加样式

.d-none{display:none;}

还有jquery,

$(document).on('click','.reply',function(){
   $(this).closest('.reply-form').removeClass("d-none");
   //$(this).closest('.reply-form').toggleClass("d-none"); //second option if want to show and hide
}

然后从锚中删除href =“#”或添加javascript:void(0)