这里的JavaScript新手....我需要调用一个传递两个变量的JavaScript函数。然后我需要通过onClick事件将这两个变量传递给另一个函数。这是一般的想法:
function FirstFunction(var1, var2) {
// Using console.log to verify passed variables
console.log(uid);
console.log(accessToken);
$('#dialog-message').html('<div><button onclick="SecondFunction(var1, var2)">Submit</button></div>');
};
function SecondFunction(var1, var2) {
// Using console.log to verify passed variables
console.log(uid);
console.log(accessToken);
};
我无法看到var1&amp; secondFunction()中的var2。这有什么不对?
答案 0 :(得分:1)
我原来的评论:
内联点击事件处理程序将在全局范围内进行评估,而不是在函数范围内进行评估。看起来您正在使用jQuery,因此请将其用于create the DOM elements和bind the event handler。
这样,您可以避免整个问题(并且不必使用全局变量):
function FirstFunction(var1, var2) {
var $button = $('<button />', {
click: function() {
SecondFunction(var1, var2);
},
text: 'Submit'
});
$('<div />').append($button).appendTo('#dialog-message');
}
因为现在事件处理程序是一个可以访问var1
和var2
的闭包。
答案 1 :(得分:0)
试试这个
$('#dialog-message').html('<div><button onclick="SecondFunction('+ var1 + ','+ var2+ ')">Submit</button></div>');
答案 2 :(得分:0)
尝试
$('#dialog-message').html('<div><button onclick="SecondFunction(' + var1 +', ' + var2 + ' )>Submit</button></div>');