如果用户点击某个按钮,我会设置一些不同的函数来设置变量。然后它将该变量传递给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;
这也不起作用,只是'未定义'
我该怎么做才能解决这个问题?
答案 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
关键字,因为因此创建一个只能在函数的本地范围内访问的不同变量,无论它是否具有相同的名称。