1

嗨,我正在尝试为我正在使用的 wordpress 修复这个插件上的错误。函数看起来像这样

function alter_ul_post_values(obj, post_id, ul_type) {
    jQuery(obj).find("span").html("..");
    jQuery.ajax({
        type: "POST",
        url: "<?php  echo get_template_directory_uri() ."/includes/ajax_counter.php";?>",
        data: "post_id="+post_id+"&up_type="+ul_type,
        success: function(msg) {
            jQuery(obj).find("span").html(msg);
        }
    });
}

并调用该函数并计算点击次数!

<span class='ul_dcont' onclick=\"alter_ul_post_values(this,'$post_id','wpt2_dislikes')\" >".$text."(<span>".  $dislike_nr ."</span>)</span>

现在,如果您在跨度上快速单击(多次单击),它将计算所有单击次数。我想将其限制为单击一次,因为 cookie 是在单击后创建的,并且不允许再计算任何点击!

谢谢!

4

2 回答 2

0

好吧,在 ajax_counter.php 中你能返回响应 JSON 对象吗?

response.cookieSet = true/false;
response.msg = your stuff;

所以你知道cookie是否设置然后你可以禁用点击span

于 2012-11-02T14:14:39.753 回答
0

最简单的方法是创建全局变量。这不是很可爱的方式,但简单有效。

var isProcessing = false;  // <- 1

function alter_ul_post_values(obj, post_id, ul_type) {
    if (isProcessing)      // <- 2
        return;            // <- 3

    isProcessing = true;   // <- 4
    jQuery(obj).find("span").html("..");
    jQuery.ajax({
        type: "POST",
        url: "<?php  echo get_template_directory_uri() ."/includes/ajax_counter.php";?>",
        data: "post_id="+post_id+"&up_type="+ul_type,
        success: function(msg) {
            jQuery(obj).find("span").html(msg);
            isProcessing = false;  // <- 5
        }
    });
}

另一个选项是更改span为,在单击input type="button"时设置属性并在回调时将其删除。disabled

于 2012-11-02T14:39:32.727 回答