无法使用jquery将local var传递给post回调函数

时间:2014-01-22 12:16:25

标签: debugging jquery post

已经多次询问和回答了这个问题,但我仍然将我的语法与answeres中描述的正确语法进行比较,并且无法找到错误。

$('.voteBtn').bind('click', function () {
    var vote = 1;
    $.post(
        "vote.php",
        { vote: vote},
        function(vote) {
            alert (vote); // BUG HERE
        }
    );
});

根据var vote = 1;

的定义,我的预期结果是“1”的警告

但是当前结果是空字符串的警告。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

你有一个名为vote的参数导致问题,所以ajax回调vote变量内部是指ajax请求返回的数据,而不是click处理程序中的闭包变量< / p>

要解决此问题,请将参数重命名为data

之类的其他内容
$('.voteBtn').bind('click', function () {
    var vote = 1;
    $.post("vote.php", {
        vote: vote,
        pollID: id
    }, function (data) {
        alert(vote); // BUG HERE
    });
});

答案 1 :(得分:1)

目前,您vote {j}是从您的ajax请求返回的数据alert,而不是之前定义的数据,请尝试使用此代码:

$('.voteBtn').bind('click', function () {
    var $vote = 1;
    $.post(
        "vote.php",
        { vote: $vote},
        function(vote) {
            alert ($vote); // BUG HERE
        }
    );
});