Like / Unlikeシステムを構築していますが、クラスのようなボタンがあります。クリックすると、データがデータベースに挿入され、クラスがlikeに変更されます。
そして、実際のlikeを削除するが機能しない別のajax呼び出しをプルする場合とは異なり、クラスが変更されると、クラスが想定するようなものを実行し、ページを更新した場合にのみ機能します。
phpコード
<div class="btn-group pull-right">
<?php
$like = '<button class="btn btn-primary btn-small like" data-like="'.$user->id.'">
<i class="icon-thumbs-up icon-white"></i> Like
</button>';
foreach ($user->likes as $likes) {
if($likes['liked_by'] == Session::get('sentry_user')) {
$like = '<button class="btn btn-primary btn-small unlike" data-like="'.$user->id.'">
<i class="icon-thumbs-down icon-white"></i> Unlike
</button>';
break 1;
}
}
echo $like;
?>
</div>
jquery
$('button.like').bind('click', function(){
var likeId = $(this).data('like');
$.ajax({
url: siteUrl + 'profile/like',
type: "post",
data: {user_id: likeId},
dataType: "json",
context: this,
beforeSend: function()
{
$(this).addClass('disabled');
},
success: function(data)
{
if(data.status == "like") {
$(this).removeClass('like')
.addClass('unlike')
.append()
.html('<i class="icon-thumbs-down icon-white"></i> Unlike');
}
},
complete: function()
{
$(this).removeClass('disabled');
}
});
});
$('button.unlike').bind('click', function(){
var likeId = $(this).data('like');
alert('you are about to unlike');
})
私がそれを使ってajax呼び出しを行う前に、それをテストするための例として、これとは異なるアラートを作成しました。
だからクラウド誰かが私にヒントをくれますか?