jQuery - 将函数中的变量传递给另一个函数

时间:2016-06-14 18:23:21

标签: javascript jquery ajax

如果用户点击某个按钮,我会设置一些不同的函数来设置变量。然后它将该变量传递给AJAX函数....除了它不传递变量。

以下是一个例子:

$('#Button1').on('click', function(e) {
    var add1 = 'yes';
    e.preventdefault();
})
$('#Button2').on('click', function(e) {
    var add1 = 'no';
    e.preventdefault();
})
$('#DoneButton').on('click', function(e) {
    submitLink = 'submit.php'
    dataString = 'add=' + add1;
    $.ajax({
       type: "POST",
       url: submitLink,
       data: dataString,
       cache: false,
       success: function(data) {

           /* My Success Notification Here */
       }
    });
    e.preventdefault();
})

我也尝试将函数声明为函数:

var add1;

这也不起作用,只是'未定义'

我该怎么做才能解决这个问题?

3 个答案:

答案 0 :(得分:3)

drop the var inside so the variable reference is not locally scoped to the click.

var add1;
$('#Button1').on('click', function(e) {
  add1 = 'yes';
  e.preventdefault();
})
$('#Button2').on('click', function(e) {
  add1 = 'no';
  e.preventdefault();
})
$('#DoneButton').on('click', function(e) {
  submitLink = 'submit.php'
  dataString = 'add=' + add1;
  $.ajax({
    type: "POST",
    url: submitLink,
    data: dataString,
    cache: false,
    success: function(data) {

      /* My Success Notification Here */
    }
  });
  e.preventdefault();
});

答案 1 :(得分:0)

在函数中放置var add1在该函数中本地声明它。如果你想在外面声明它,你必须在函数外添加var add1;,然后删除函数内的var,即`add1 ='no';

答案 2 :(得分:0)

您需要在共享范围中定义变量,以便所有函数都可以访问它,在这种情况下,这是全局范围。然后在函数的局部范围内为其赋值。

您缺少的一个简单部分是,一旦您使用var myVar在共享范围内声明它,您在分配时不需要再次使用var关键字,因为因此创建一个只能在函数的本地范围内访问的不同变量,无论它是否具有相同的名称。