我正在为 jQuery 1.8.11.js 使用下面的上下文菜单插件,并使用“build”回调在每次点击时动态创建菜单。
http://medialize.github.com/jQuery-contextMenu/index.html
我希望能够在单击项目时动态加载菜单选项(调用控制器方法,根据项目的 ID 确定可用选项)
我的问题是这个上下文菜单库似乎不支持 ajax 调用,如果我尝试在“build”回调中进行 ajax 调用,它显然不会等到 ajax 调用完成。
这是我正在尝试做的精简片段:
$.contextMenu({
selector: '" + contextMenuSelector + @"',
build: function ($trigger, e) {
menuOptionsArray = [];
//Ajax START
$.ajax({
type: "POST",
url: <myurl>,
//async: false, //**IF I UN-COMMENT THIS, IT WORKS**
context: $(this),
success: function (data) {
//BUILD THE OPTIONS ARRAY
menuOptionsArray...
}
});
//Ajax END
//This returns before the ajax call finishes
return {
items: menuOptionsArray
};
}
在上面,设置 async = false 有效,但由于已弃用,我不想使用它。
有没有其他方法可以异步加载项目,或者这需要修改插件吗?