我有一个函数接受一个名为buttonID的参数,我需要将其传递给多个其他函数。单击链接时,将传递ID。
<a href="#" class="theme_btn" id="check-user" onClick="javascript:checkUser(this.id);">User Check</a>
我的功能是
function checkUser(buttonID) {
//do some stuff
var data = {};
data.callback = getUserInfo;
data.username = uname;
data.level = lvl;
checkLevel(data);
}
我遇到的问题是我无法将buttonID传递给回调函数getUserInfo。
我尝试了getUserInfo(buttonID),但它无法正常运行。我应该使用getUserInfo({buttonID])的以下语法吗?
简而言之,我需要将buttonID的值从函数传递给函数,我相信它的语法阻碍了我。关于我可以尝试不同的任何想法或建议吗?
答案 0 :(得分:1)
您可以使用bind
:
function checkUser(buttonID) {
//do some stuff
var data = {};
data.callback = getUserInfo.bind(null, buttonID);
data.username = uname;
data.level = lvl;
checkLevel(data);
}
更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
答案 1 :(得分:0)
您可以使用匿名函数执行此操作:
data.callback = function(){getUserInfo(buttonID)}
使用JavaScript ES6语法,缩短一点:
data.callback = _=>{getUserInfo(buttonID)}
答案 2 :(得分:0)
var buttonIDGlobal;
function checkUser(buttonID) {
buttonIDGlobal = buttonID;
//do some stuff
var data = {};
data.callback = getUserInfo;
data.username = uname;
data.level = lvl;
checkLevel(data);
}
&#13;
You can simple define a global variable and assign the button ID to that variable.
Now "buttonIDGlobal" is accessible in "getUserInfo()" function.`enter code here`
&#13;