我有一个jquery
函数来显示右键单击事件的菜单。 我希望从callback
函数内的父函数访问一个对象。访问javascript变量范围之外的jquery函数
正在使用following JQuery插件获取上下文菜单。
下面是代码:
function OnContextMenu() {
//alert(key + ' ' +this.Node.Content);
var localNode = this.Node;
alert(localNode.Content); //CORRECT NODE VALUE GETS ALERTED
$.contextMenu({
selector: '.Container',
callback: function(key, options) {
var m = "clicked: " + key;
alert(localNode.Content); //ALWAYS PRINTS THE VALUE OF THE VERY FIRST NODE THAT WAS CLICKED.
// window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: "quit"}
}
});
}
正如你可以看到我存储值的变量:
var localNode = this.Node;
,并使用callback
函数内部的变量。 这个特别的是,alert(localNode.Content);
里面的回调在菜单被第一次点击时给出正确的值。之后,即使外部函数的alert
正确地给出了不同的值,内部回调函数仍会显示与第一次相同的旧值。
我已经加入了jQuery插件的链接问题。 – DarkKnightFan