jquery更改变量函数不起作用

时间:2013-07-03 18:13:33

标签: jquery

以下是我的代码示例,我删除了不必要的部分。我设置了一个全局变量recipient。它应该是警报1,但没有任何警报。在函数外部更改变量集的正确方法是什么?我该如何解决这个问题?

var recipient = 0;

$("#submit-button").click(function () {

    $.getJSON("/fetch.php?o=4&user=" + k, function (B) {
        $.each(B, function (index, result) {
            recipient = 1;

        })

    })

    if (recipient == 1) {
        alert("yes");
    }
})

2 个答案:

答案 0 :(得分:4)

这是由于异步调用,将条件放在回调函数中而不是放在if之后。在单击函数完成执行后调用回调。

var recipient = 0;      


$("#submit-button").click(function() {

  $.getJSON("/fetch.php?o=4&user=" + k, function(B) {
       $.each(B, function(index, result) {
            recipient = 1;    
       });
      if(recipient==1) {
         alert("yes");
      }
   });
});

答案 1 :(得分:1)

在JSON请求完成之前,您正在检查收件人是否为1。将其添加到回调函数中。

var recipient = 0;

$("#submit-button").click(function () {
    $.getJSON("/fetch.php?o=4&user=" + k, function (B) {
        $.each(B, function (index, result) {
            recipient = 1;
        });

        if (recipient == 1) {
            alert("yes");
        }
    });
});