我想多次替换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:抱歉我的英文。
答案 0 :(得分:0)
好的,我会尝试一些东西,然后用这段代码得到我想要的东西
if ($('#like-' + likeid).is(":visible")) {
$('#like-' + likeid).hide();
$('#unlike-' + likeid).show();
} else {
$('#unlike-' + likeid).hide();
$('#like-' + likeid).show();
}