2012-10-30 41 views
1

我開發了一個簡單的/不像腳本。jQuery贊/不像問題

像腳本

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

您可以發表演示和/或您的其他代碼(不同功能缺失)嗎? –

+0

我已經包含了不同的功能。 – Ken

+0

我沒有看到一個問題... http://jsfiddle.net/z8mKX/1/不過,我也不知道是什麼Ajax請求確實服務器端。 –

回答

0

在你的不同功能,您可以定義var not_like = '0';這應該是var new_count = '0';,並且,作爲Ditmar溫特所提到的,你傳遞了錯誤的參數個數來的onclick功能,更新的代碼爲here

+0

謝謝先生.. – Ken

1

你有一條線,

var link = 'like(\'' + blog_id + '\',\'' + object_id + '\',\'' + object_type + '\',\'' + user_id + '\',\'' + default_count + '\',\'' + not_like + '\')\;'; 

。這設置了什麼應該執行時,你不喜歡什麼後打你喜歡。您將錯誤數量的參數傳遞給「like」函數。舊代碼的剩餘部分?

+0

謝謝先生.. – Ken