最近发现主题的点赞按钮,功能有点问题:点赞之后刷新页面,可以再次点赞。这个问题不应该出现,可以通过cookies设定时间来避免改情况的发生。
原点赞功能的js代码类似于下面:
- //点赞
- $.fn.postLike = function() {
- if (jQuery(this).hasClass("done")) {
- alert("您已赞过了!");
- } else {
- setCookie(location.pathname,1,365);
- $(this).addClass("done");
- var d = $(this).data("id"),
- c = $(this).data("action"),
- b = jQuery(this).children(".count");
- var a = {
- action: "zm_ding",
- um_id: d,
- um_action: c
- };
- $.post(wpl_ajax_url, a,
- function(e) {
- jQuery(b).html(e)
- });
- return false
- }
- };
- $(document).on("click", ".favorite",
- function() {
- $(this).postLike()
- });
我们需要设置getCookie,将 if (jQuery(this).hasClass("done")) {
改为:
if (getCookie(location.pathname)==1) {
并将 $(this).addClass("done");
改为:
setCookie(location.pathname,1,365);
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
最后代码为:
- // 喜欢
- $.fn.postLike = function() {
- if (getCookie(location.pathname)==1) {
- alert("您已赞过了!");
- } else {
- setCookie(location.pathname,1,365);
- var d = $(this).data("id"),
- c = $(this).data("action"),
- b = jQuery(this).children(".count");
- var a = {
- action: "zm_ding",
- um_id: d,
- um_action: c
- };
- $.post(wpl_ajax_url, a,
- function(e) {
- jQuery(b).html(e)
- });
- return false
- }
- };
- $(document).on("click", ".favorite",
- function() {
- $(this).postLike()
- });
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利