【问题标题】:Reinitialize or check to see if menu is initialized重新初始化或检查菜单是否已初始化
【发布时间】:2017-07-31 10:14:56
【问题描述】:

我在初始化网格上的上下文菜单时遇到了问题,它可以工作,但是我在页面上有另一个功能,当我单击该功能时会隐藏网格,当我将网格带回菜单不再工作时,我是认为也许重新初始化它会解决我的问题。

如何重新初始化菜单?如果没有“重新初始化”功能,我如何在销毁菜单并制作另一个菜单之前检查它是否已经制作?

我知道我可以销毁它,但我不知道如何判断它是否先初始化?

JS:

if(order.contextmenu("initialized"))
    order.contextmenu("destroy");

【问题讨论】:

  • 我一直无法弄清楚这一点,所以我决定使用具有更好支持的不同上下文菜单插件。

标签: jquery jquery-ui-contextmenu


【解决方案1】:

我无法解决或解决这个问题,所以我删除了上下文菜单插件并与另一位拥有良好文档的插件作者一起使用(链接如下):

http://swisnl.github.io/jQuery-contextMenu/

【讨论】:

    【解决方案2】:

    菜单可以(重新)初始化 - 就像任何 jQuery UI 小部件一样 - 通过调用

    $(selector).contextmenu({...})
    

    但通常这不是必需的:

    如果网格只是被隐藏(但没有被删除),那么只要网格再次可见,菜单就应该继续工作。

    如果网格被移除并重新创建,那么选择器应该匹配一些没有被移除的父元素,例如像这样:

    $(document).contextmenu({
        delegate: ".grid-cell",
        ...
    })
    

    然后菜单将继续工作。

    【讨论】:

    • 网格 (jqGrid) 被隐藏,然后重新加载数据,我有一个字段,您可以在其中输入数据并点击加载,网格加载行,然后在该字段中单击返回输入不同的数据,onFocus 网格隐藏,当您单击加载网格显示但使用新数据并且上下文菜单不再起作用时,我在发布寻求帮助之前尝试了您建议的两种方法,但均未奏效。确实很奇怪,但是我更改了插件,现在效果很好。
    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2011-10-12
    • 2015-05-23
    • 2019-01-25
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多