【发布时间】:2016-02-11 13:44:04
【问题描述】:
我正在使用 jstree 自定义上下文菜单,并尝试定义 create 选项。我已经有一个执行预期逻辑的按钮,但是它位于不同的页面上。我将如何使用 javascript/jQuery 来调用不同页面上的按钮?
这是我页面中名为 middlenav.aspx 的 javascript 文件中的上下文菜单。我希望引用的按钮位于名为 navbar.aspx
的页面上更新:我能够让它部分工作。我可以调用该按钮,但它会导致我当前的页面刷新。如何避免刷新当前页面middlenav.aspx?
"contextmenu": {
"items": function ($node) {
return {
"Create": {
"label": "Create",
"action": function (obj) {
createItem(obj);
}
},
"Rename": {
"label": "Edit",
"action": function (obj) {
this.rename(obj);
}
},
"Delete": {
"label": "Delete",
"action": function (obj) {
this.remove(obj);
}
}
};
}
},
// Updated
function createItem(obj) {
$.ajax({
url: "navbar.aspx",
success: function (data) {
$('body').append(data);
$("#btnNewItem").click();
}
});
【问题讨论】:
-
您不能调用不在 DOM 中的元素。您可以重构要调用的逻辑并从两个页面调用它,或者使用 Ajax 并调用逻辑方法...
-
我能够部分使用 ajax 方法,但它会导致我的页面刷新。是否有可能以一种可以避免这种情况的方式编写它? (见上面更新的代码)
-
@Zaki 所说的是将逻辑放到您的原始页面中的全局 javascript 文件中。当您单击任一页面中的按钮时,调用该全局函数。
标签: javascript jquery html asp.net jstree