我有一大堆代码:
for (game in settings_object.games)
{
chrome.contextMenus.create({
"title": "Add thread("+request.thread+") to game: "+game,
"contexts":["page"],
"onclick": function () {addThreadToGame(game,request.thread)}
});
}
这会生成一个上下文菜单,如:
目的是当用户点击“添加线程(1234)到游戏:第一场比赛”然后 addThreadToGame(“第一场比赛ID”,“1234”) )得到执行...遗憾的是,似乎addThreadToGame总是作为addThreadToGame (“游戏三的ID”,“1234”)触发,因为传递给函数的值始终是它在运行时的最后一个值而不是菜单生成时间...我错过了什么?
答案 0 :(得分:1)
找到答案:
中找到的代码之后for (game in settings_object.games) { chrome.contextMenus.create({ "title": "Add thread("+request.thread+") to game: "+game, "contexts":["page"], "onclick": (function(element) { return function(info, tab) { addThreadToGame(element,request.thread) } })(game) }); }