【问题标题】:jquery call a button from a different pagejquery从不同的页面调用一个按钮
【发布时间】: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


【解决方案1】:

我不确定这是否是最有效的方法,但我能够通过以下功能完成它:

function createItem(obj) {
    $.get("navbar.aspx", function (data) {
        $('myHiddenDiv').append(data);
        $("#btnNewItem").click();
        window.stop();
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多