jQuery - 将函数内的变量传递给另一个函数
问题描述:
我有几个不同的函数,如果用户单击某个按钮时会设置一个变量。然后它将该变量传递给一个AJAX函数,除非它不传递该变量。jQuery - 将函数内的变量传递给另一个函数
下面是一个例子:
$('#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;
,不能正常工作,只是出来作为“未定义”
我能做些什么来解决这个问题?
答
将var
放在里面,所以变量引用不在本地范围内。
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();
});
+0
完美,没想到那是那么容易哈哈。这解决了我的问题。谢谢! – Mason
答
将var add1
放在该函数中在该函数中本地声明它。如果你想在外面声明它,你必须在函数外部添加var add1;
,然后删除函数内部的var
,即`add1 ='no';
答
您需要在共享作用域中定义变量,以便所有的函数都可以访问它,在这种情况下,这是全局作用域。然后在函数的本地范围内为其赋值。
您丢失的简单部分是,一旦您使用var myVar
将它声明在共享范围中,则在分配给它时不需要再次使用var
关键字,因为这样做会创建一个仅可访问的不同变量在函数的本地范围内,不管它是否具有相同的名称。
因为添加'var'使得它在本地范围内onclick – epascarello
我该怎么做才能让所有其他功能都可以获取它? @epascarello – Mason
不要使用var .. – epascarello