jQuery仅隐藏此回复

时间:2016-07-30 10:30:30

标签: javascript jquery

我在这里有这个jQuery代码:

$(".replies_hide").click(function(e) {
    $(".replies_show").show(); // This is only button code. Not replies
    $(".replies").hide(300); // I need to hide only these replies. Not all replies
    e.preventDefault();
});

当我点击“显示回复”按钮时,它会显示特定评论的回复。但是当我点击“replies_hide”时,它会立即关闭所有回复。如何隐藏我刚刚开放的回复?

HTML:

       <ul class="list-unstyled replies">
        <a class="replies_hide" href="#">Hide replies</a>
        @foreach($com->reply as $reply)
        <li style="margin-left: 5%">
       <img src="http://flipbit.co.uk/content/images/blog/build-avatar.jpg" style="height: 30px">
       <strong>{{$reply->user->name}}</strong> 
       {!! strtr(strip_tags($reply->reply), $emotes) !!}<br>
       <small>{{$reply->created_at}}</small>
       @if(Auth::user()->id == $reply->user_id)
       <a href="/trinti-atsakyma/{{$reply->id}}">Trinti</a>
       @endif
       </li>
       @endforeach    
       </ul>

2 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为您隐藏了回复类的所有元素。您必须只隐藏您所在的html元素。试试这个:

$(this).hide();

答案 1 :(得分:0)

使用HTML标记,您似乎只想隐藏包含您点击的ul按钮的hide块以及相关回复,以便您需要找到最接近的{{ 1}}阻止你点击的按钮。

为此,您可以使用:

ul

它将通过测试元素本身并遍历DOM树中的祖先来获得与选择器匹配的第一个元素。