我有一个jquery
在右键单击事件上显示菜单的功能。我希望从函数内部的父函数访问一个对象callback
。
我正在使用以下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
外部函数的 正确地给出了不同的值,内部回调函数仍然显示与第一次相同的旧值。