我有一個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