多次更换2 div

时间:2018-04-04 09:18:43

标签: javascript php html laravel replacewith

我想多次替换2个div,但是当我更换它1次并再次单击该按钮时,它会同时显示它们。

我尝试描述它:当我点击“喜欢”按钮时,它切换到喜欢和反击工作(ajax工作也),但是当我点击“不喜欢”按钮之后,按钮没有替换它的只是显示我和他们两个。

代码:

JS:

 <script>
    function likethis(likeid)
    {
        $('#dealid-' + likeid).html(function(i, val) {
        $.ajax({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            type:"get",
            url: 'deal/like/'+ likeid,
        });
        return +val+1;
        });
        $('#like-' + likeid).replaceWith($('#unlike-' + likeid).html());
    }
</script>


<script>
    function unlikethis(likeid)
    {
        $('#dealid-' + likeid).html(function(i, val) {
            $.ajax({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                type:"get",
                url: 'deal/like/'+ likeid,
            });
            return +val-1;
        });
        $('#unlike-' + likeid).replaceWith($('#like-' + likeid).html());
    }
</script>

视图(我使用laravel):

 $if_null = App\Like::where('post_id','=', $deal->id)
                            -> where('user_id', '=', Auth::User()->id )
                            ->first();
                        if (is_null($if_null)){
                        ?>
                        <div id="like-{{$deal->id}}">
                        <button onclick="likethis(this.id)" name="like" id="{{$deal->id}}"  class="link m-r-10"><i class="fa fa-heart"></i></button>
                        </div>
                        <div style="display:none;" id="unlike-{{$deal->id}}">
                            <button onclick="unlikethis(this.id)" id="{{$deal->id}}" class="link m-r-10"><i class="fa fa-heart text-danger"></i></button>
                        </div>
                        <?php }
                        else {?>
                        <div id="unlike-{{$deal->id}}">
                        <button onclick="unlikethis(this.id)" id="{{$deal->id}}" class="link m-r-10"><i class="fa fa-heart text-danger"></i></button>
                        </div>
                        <div style="display:none;" id="like-{{$deal->id}}">
                            <button onclick="likethis(this.id)" id="{{$deal->id}}" class="link m-r-10"><i class="fa fa-heart"></i></button>
                        </div>
                        <?php }?>
                        <div id="dealid-{{$deal->id}}"> {{$deal->like->count()}} </div>

谁能知道为什么?非常感谢! (: PS:抱歉我的英文。

1 个答案:

答案 0 :(得分:0)

好的,我会尝试一些东西,然后用这段代码得到我想要的东西

            if ($('#like-' + likeid).is(":visible")) {
            $('#like-' + likeid).hide();
            $('#unlike-' + likeid).show();
        } else {
            $('#unlike-' + likeid).hide();
            $('#like-' + likeid).show();
        }