我开发了一个简单的喜欢/不同的脚本。
喜欢剧本
function like(blog_id,object_id,object_type,user_id,default_count)
{
if( user_id == 0 ) {
jQuery("#show_login_box").fancybox({cyclic: true}).trigger('click');
} else {
if( default_count == 0 ) {
var new_count = '1';
var link = 'unlike(\'' + blog_id + '\',\'' + object_id + '\',\'' + object_type + '\',\'' + user_id + '\',\'' + new_count + '\')\;';
jQuery('.likes').html('You like this.');
} else {
var new_count = parseInt(default_count) + 1;
if ( jQuery('.like-user').length ) {
var name = jQuery('.like-user').html();
var link = 'unlike(\'' + blog_id + '\',\'' + object_id + '\',\'' + object_type + '\',\'' + user_id + '\',\'' + new_count + '\')\;';
jQuery('.likes').html('You and <span class="like-user">' + name + '</span> likes this.');
} else {
var link = 'unlike(\'' + blog_id + '\',\'' + object_id + '\',\'' + object_type + '\',\'' + user_id + '\',\'' + new_count + '\')\;';
jQuery('.likes').html('You and <span class="like-user"><a href="#">' + default_count + ' others</a></span> like this.');
}
}
jQuery('.like_click').attr('onclick',link);
jQuery('.like_click span').html('<img src="/wp-content/plugins/assets/images/icons/unlike-icon.png"> Unlike');
jQuery.ajax({
url: '/wp-content/plugins/assets/like.php',
type: 'POST',
data: { object_id: object_id, user_id: user_id, type: 'like', blog_id: blog_id, object_type: object_type, count: default_count },
dataType: 'json',
success: function(data)
{
// jQuery('#' + object_id + '_count').html(data.total);
}
});
}
}
与脚本
不同function unlike(blog_id,object_id,object_type,user_id,default_count)
{
if( default_count == 1 ) {
var not_like = '0';
var link = 'like(\'' + blog_id + '\',\'' + object_id + '\',\'' + object_type + '\',\'' + user_id + '\',\'' + default_count + '\',\'' + not_like + '\')\;';
jQuery('.likes').html('');
} else {
var new_count = parseInt(default_count) - 1;
if ( jQuery('.like-user').length && default_count > 1 ) {
var name = jQuery('.like-user').html();
var link = 'like(\'' + blog_id + '\',\'' + object_id + '\',\'' + object_type + '\',\'' + user_id + '\',\'' + new_count + '\')\;';
jQuery('.likes').html('<span class="like-user">' + name + '</span> like this.');
} else {
var link = 'like(\'' + blog_id + '\',\'' + object_id + '\',\'' + object_type + '\',\'' + user_id + '\',\'' + new_count + '\')\;';
jQuery('.likes').html('<span class="like-user"><a href="#">' + new_count + ' people</a></span> like this.');
}
}
jQuery('.like_click').attr('onclick',link);
jQuery('.like_click span').html('<img src="/wp-content/plugins/assets/images/icons/like-icon.png"> Like');
jQuery.ajax({
url: '/wp-content/plugins/assets/like.php',
type: 'POST',
data: { object_id: object_id, user_id: user_id, type: 'unlike', blog_id: blog_id, object_type: object_type, count: default_count },
dataType: 'json',
success: function(data)
{
// jQuery('#' + object_id + '_count').html(data.total);
}
});
}
HTML
<a onclick="like('85','1','product','1','0');" class="button like_click">
<span><img src="wp-content/plugins/assets/images/icons/like-icon.png"> Like</span>
</a><div class="likes"></div>
情景:我喜欢帖子而且是第一个帖子,所以返回的信息是“你喜欢这个”。没有刷新我不喜欢它现在它删除了“你喜欢这个”的消息。哪个是正确的答案。
问题:如果不刷新相同的帖子,我又喜欢它了,现在消息显示“你和其他1个人喜欢这个”而不是“你喜欢这个”。消息。
JS小提琴演示: http://jsfiddle.net/z8mKX/2/
我无法配置我的脚本有什么问题。请帮忙
答案 0 :(得分:1)
你有一条线,
var link = 'like(\'' + blog_id + '\',\'' + object_id + '\',\'' + object_type + '\',\'' + user_id + '\',\'' + default_count + '\',\'' + not_like + '\')\;';
在你的不同功能中。这设置了当你在不同的东西之后击中时应该执行的内容。你将错误数量的参数传递给你的“喜欢”函数。遗留旧代码?
答案 1 :(得分:0)
在您的不同函数中,您定义var not_like = '0';
这应该是var new_count = '0';
,并且正如Ditmar Wendt所提到的,您将错误数量的参数传递给onclick函数,更新后的代码为{{ 3}}