我有这个回调函数设置:
问题在于传递给回调函数的url值始终是上下文变量中的最后一个值 - 在这种情况下是"url2"。我希望将特定的值传递给每个回调函数的“实例”,但是由于回调似乎记住了相同的值,因此上一次引用时是最后一个值。
我有点卡住了。任何帮助将不胜感激。
PS:我正在使用 jQuery ContextMenu,据我所知,它不支持向其回调函数发送自定义数据。正是在这种情况下我遇到了这个问题。任何在这种环境中克服这个问题的建议也很有帮助!
var contextMenu = [];
var context = [ { "name": "name1", "url": "url1" }, {"name": name2", "url: "url2" } ];
for(var i=0; i < context.length; i++) {
var c = context[i];
var arr = {};
arr[c.name] = function() { callback(c.url); }
contextMenu.push( arr );
}
function callback(url) {
alert(url);
}
问题在于传递给回调函数的url值始终是上下文变量中的最后一个值 - 在这种情况下是"url2"。我希望将特定的值传递给每个回调函数的“实例”,但是由于回调似乎记住了相同的值,因此上一次引用时是最后一个值。
我有点卡住了。任何帮助将不胜感激。
PS:我正在使用 jQuery ContextMenu,据我所知,它不支持向其回调函数发送自定义数据。正是在这种情况下我遇到了这个问题。任何在这种环境中克服这个问题的建议也很有帮助!